쪽지 및 알림 관련하여 문의드립니다.

안녕하세요^^

계속 문의글 남긴 것 처럼 저는 워드프레스 멀티사이트를 이용하여 같은 내용의 사이트를 하나는 PC용 (A사이트) 하나는 모바일용 (B사이트)으로 만들고 있었습니다. 

그런데 아무래도 워드프레스가 테마를 비롯하여 플러그인들이 많이 사용되고, 제 경우에는 내용도 같아야 한다는 점 때문에 개발과 운용이 쉽지 않음을 느꼈습니다..ㅠㅠ

 

그래서 생각을 좀 달리해서 A사이트 내에 각 게시판별로 모바일용 페이지를 추가로 만들고(게시판 숏코드 사용)

모바일로 접속시에 모바일용 페이지로 리다이렉트 되도록 각 페이지별로 1:1 연동하는 작업을 했습니다. (노가다죠..ㅠㅠ)

그랬더니 체감상 멀티사이트보다 더 안정적인 것 같네요..

 

그런데 이 경우에 쪽지랑 알림이 문제가 되더라고요..

물론 쪽지와 알림도 숏코드를 이용하여 모바일 페이지를 따로 만들었습니다..

쪽지나 알림이 표시가 잘 되고. 일부 기능(읽음표시, 삭제 등)은 작동하는데

쪽지의 경우 쪽지쓰기, 답장쓰기 등을 누르면 아무 동작이 없이 리프레쉬 되는 것 처럼 보이고,

알림의 경우 확인하기를 누르면 댓글 알림으로 테스트 해보니 댓글이 달린 모바일 페이지의 게시판 최상위가 로드됩니다.

 

이는 게시판, 그리고 알림과 쪽지가 설치된 A사이트의 주소로 접속되었다가 모바일용 페이지로 리다이렉트 되어 넘어오는 현상 같습니다..

 

사실 최신글 모아보기도 멀티사이트 때와 같이 정확한 URL 주소를 입력할 수 없다보니 사용할 수가 없었고

알려주셨던 각 게시판 최신글 보기를 이용하여 표시할 수 있었는데요...

 

이처럼

1. 알림을 게시판 숏코드가 설치된 곳 중에서 원하는 URL로 보도록 하는 방법은 없을까요?

2. 쪽지도 답장쓰기와 쪽지쓰기를 누를 경우 현재 페이지에서 쓰기 화면이 되도록 하는 방법은 없을까요?

 

멀티사이트와 비슷한 개념이기 때문에 어떻게 생각해보면 쉬울 것 같으면서도 어떻게 생각해보면 되게 어려울 것 같고... 방법이 있을까요?ㅠㅠㅠㅠ

무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
  • 안녕하세요~^^

    1. 코스모스팜 회원관리 플러그인 알림에서 KBoard 본문 페이지로 이동할 때

    모바일 기기에서는 다른 페이지로 이동하게 하고 싶으신 건지요?

    KBoard 플러그인 쪽 코드를 수정해주셔야 할 듯합니다.

     

    FTP로 접속해서 /wp-content/plugins/kboard/class/KBRouter.class.php 파일에

    아래의 코드를 찾아서

    if($page_id){
        $url = new KBUrl();
        $board_url = $url->set('kboard_content_redirect', '')->set('kboard_redirect', '')->set('uid', $content->uid)->set('mod', 'document')->toStringWithPath(get_permalink($page_id));
    }

    아래의 코드로 교체해보시겠어요?

    if($page_id){
        $page_id = apply_filters('kboard_content_page_id', $page_id, $content, $board_id);
        $url = new KBUrl();
        $board_url = $url->set('kboard_content_redirect', '')->set('kboard_redirect', '')->set('uid', $content->uid)->set('mod', 'document')->toStringWithPath(get_permalink($page_id));
    }

     

    워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보세요.

    add_filter('kboard_content_page_id', 'my_kboard_content_page_id', 10, 3);
    function my_kboard_content_page_id($page_id, $content, $board_id){
    	if(wp_is_mobile() && $board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '페이지ID';
    	}
    	return $page_id;
    }

    위의 코드에서 $board_id == '1' 부분은 실제 게시판 id로 적용해보세요.

    페이지ID 부분에는 실제 이동할 페이지 ID로 적용해보세요.

     

    2. 쪽지 페이지를 모바일에서는 다른 페이지로 적용하시려면

    테마 쪽 functions.php 파일 하단에

    아래의 코드를 추가해보시겠어요?

    add_filter('option_cosmosfarm_members_messages_page_id', 'my_option_cosmosfarm_members_messages_page_id', 999, 1);
    function my_option_cosmosfarm_members_messages_page_id($messages_page_id){
    	if(wp_is_mobile()){
    		$messages_page_id = '페이지ID';
    	}
    	return $messages_page_id;
    }

    위의 코드에서 페이지ID 부분에는 실제 이동할 페이지 ID로 적용해보세요.

     

    워드프레스에서 페이지 ID를 찾는 방법은 아래 블로그 링크를 확인해주세요.

    워드프레스에서 페이지(포스트) ID를 찾는 방법

    고맙습니다.

  • 모바일 기기로 접속시 모바일 전용 페이지로 이동하게 하는 것은

    Equivalent Mobile Redirect

    플러그인을 사용하여 처리하였습니다. 

    PC 전용 페이지 편집에 들어가보면 맨 하단에 이 페이지로 모바일이 접속 시 

    리다이렉트 시킬 페이지를 적는 공간이 있는데 거기에 모바일 전용 페이지 주소를 넣었습니다.

     

    제가 사용중인 워드프레스는 멀티사이트기능이 활성화 되었고, 

    두 사이트간 최신글 모아보기와 쪽지 알림 등이 호환되게 하기 위해서 전에 알려주신 코드들을 적용하였습니다.

    멀티사이트 최신글 적용 : https://www.cosmosfarm.com/threads/document/34592

    멀티사이트 쪽지 및 알림 : https://www.cosmosfarm.com/threads/document/34714

     

    혹시 이게 위의 알려주신 방법에 영향을 미칠까요?? 

     

    멀티사이트 최신글 적용 코드를 삭제하고 기존의 것을 넣으면 현재 페이지의 최신글 모아보기 숏코드가 작동을 안 하고

    [kboard_latestview id=1] 이런식으로 글씨만 표시됩니다. 그런걸로 봐서 영향이 있지 않을까 싶어서요ㅠㅠ

  • 코드 상에는 문제없는 듯합니다.

    모바일 기기로 접속 시 모바일 전용 페이지로 이동하게 하는 건

    어떤 방법으로 처리하셨는지도 알려주시면

    추가적으로 도움드릴 것이 있는지 확인해보겠습니다.

    고맙습니다.

  • 아 지금 확인 해보니 제가 원하는 페이지 번호 897이 표시가 되네요

    그런데 여전히 모바일에서도 833 페이지가 로드됩니다.ㅠ.ㅠ

  • 답변 감사합니다. 

    해보니 페이지아이디가 833이라고 PC에서만 보이네요 

    모바일은 저 숫자도 뜨질 않습니다..

     

    833은 PC용 쪽지 페이지 입니다.

    "회원가입관리>커뮤니케이션" 여기에서 쪽지페이지로 설정된 페이지 입니다.

     

    알려주신 쪽지 관련 코드를 아래와 같이 functions.php 하단에 적용하였는데 맞을까요?

    add_filter('option_cosmosfarm_members_messages_page_id', 'my_option_cosmosfarm_members_messages_page_id', 999, 1);
    function my_option_cosmosfarm_members_messages_page_id($messages_page_id){
    	if(wp_is_mobile()){
    		$messages_page_id = '897';
    	}
    	return $messages_page_id;
    }

     

  • 게시판 id 또는 페이지 id는 실제 id와 일치하는지요?

    아래의 코드를 찾아서

    return $messages_page_id;

    찾은 코드 위에 아래의 코드를 추가하시면

    echo $messages_page_id; exit;

    적용된 페이지 id를 확인하실 수 있습니다.

    고맙습니다.

  • 쪽지 보내기도 위의 코드를 functions.php에 적용 하였는데

    회원가입관리>커뮤니케이션 에서 설정한 쪽지 페이지로 로드되네요..ㅜㅜ

  • 말씀해주신 것처럼 리턴 코드를 다 지우고 확인해 보았는데 결과는 같습니다.

    혹시 다른 방법이나 아니면 알려주신 이 코드가 잘 적용이 되는지 확인하는 방법이 있을까요??

  • PHP에서 return 이후의 코드는 실행되지 않기 때문에

    올려주신 코드 중 아래의 코드는

    제일 하단의 코드만 남기고 모두 지우신 후에 확인해보시겠어요?

    return $page_id;

    고맙습니다.

  • 너무너무 감사합니다^^

    1. 알림의 경우 적용해야할 게시판이 여러개여서 아래와 같이 했는데 한 번 봐주시겠어요?

    add_filter('kboard_content_page_id', 'my_kboard_content_page_id', 10, 3);
    function my_kboard_content_page_id($page_id, $content, $board_id){
    	if(wp_is_mobile() && $board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '525';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '2'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '541';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '3'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '548';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '4'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '553';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '5'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '578';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '6'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '592';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '7'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '579';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '8'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '602';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '9'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '607';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '10'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '611';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '11'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '617';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '12'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '623';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '13'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '629';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '14'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '635';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '15'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '641';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '16'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '647';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '17'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '653';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '18'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '659';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '19'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '665';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '20'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '671';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '21'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '708';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '22'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '719';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '23'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '713';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '24'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '725';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '25'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '731';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '26'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '676';
    	}
    	return $page_id;
    	if(wp_is_mobile() && $board_id == '27'){ // 실제 게시판 id로 적용해주세요.
    		$page_id = '682';
    	}
    	return $page_id;
    }

     

    그런데 위에서 알려주신 대로 (위의 코드 포함) 적용을 했는데 현상이 똑같이 반복되고 있습니다... 

    디버그가 뜨지도 않고 이상이 없다고 나오는데.. 

     

    쪽지도 PC용 쪽지 페이지에서 로드가 되고 알림에서의 확인도 PC용 페이지쪽으로 넘어가네요;;;

  • 안녕하세요.

    Equivalent Mobile Redirect 플러그인을 테스트해보진 못했습니다.

    멀티 사이트에서 알림 및 쪽지 기능은 저희도 연구를 해봐야 할 듯합니다.

    추후 개선하여 업데이트하도록 하겠습니다.

    고맙습니다.

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)