permalink 변경 후 facebook comment 와 like 불러오기

 

워드프레스 퍼머링크(permalinks)를 기본(/?p=123)에서 날짜/월/번호(2012/11/123)(/%year%/%monthnum%/%post_id%)로 바꾸었습니다.

검색엔진최적화를 생각한다면 /%category%/%postname%/이 좋다고 합니다만, 구글 최적화는 다른 방법이 많이 있어서 상관없다 판단하였습니다. 오히려 postname을 사용하면 주소창에 한글이 표시되어 소셜서비스로 공유할 때는 방해가 되었고, 차라리 방문자에게 포스트가 언제 작성되었는지를 보여주는게 더 좋지 않을까… 라고 생각하였습니다.

그런데, 막상 퍼머링크를 바꾸고 나니 예전에 남겨진 페이스북댓글이 호출되지 않았고, 좋아요, 트위터, 구플의 카운트가 표시되지 않았습니다. 자동으로 알아서 처리해 줄것으로만 생각했는데 뒤통수 때리네요.

아래의 2개의 링크는 실제로 같은 포스트 이지만,  페이스북의 app는 서로 다른 url로 인식하네요. 당연한가요? ^^

*http://eastsocial.co.kr/?p=102 (워프 기본값인 shortlink)

*http://eastsocial.co.kr/2012/01/102 (permlink로 바꾼 링크)

 

퍼머링크를 어떤 식으로 바꾸더라도, 실제로 변하지 않는 주소는 ?p/123 입니다. 워드프레스에서는 shortlink라고 합니다.

워드프레스에 페이스북 댓글달기(social plugin)를 참고하여… 수정한 코드는 아래와 같습니다.

 

페이스북 댓글이 위치한 곳의 소스는…

1
<div data-href="<?php the_permalink(); ?>" data-num-posts="5" data-width="600"></div>
<div data-href="<?php the_permalink(); ?>" data-num-posts="5" data-width="600"></div>

the_permalink() 를 YOUR_URL/?p=php the_id()로 수정. 실제 적용은…

1
2
3
4
5
6
7
8
9
10
<div data-href="<?php bloginfo('url'); ?>/?p=<?php the_id() ?>" data-num-posts="5" data-width="600"></div>
(참고 : <a href="http://wordpress.org/support/topic/solution-how-to-change-permalinks-without-losing-facebook-commentslikes" target="_blank">http://wordpress.org/support/topic/solution-how-to-change-permalinks-without-losing-facebook-commentslikes</a>)
 
[box]
 
그런데... YOUR_URL/?p=php the_id()는 wp_get_shortlink()와 같으므로... <strong>php the_permalink()를 wp_get_shortlink();</strong> 도 가능.
 
[/box]
 
[code]<div data-href="<?php echo wp_get_shortlink(); ?>" data-num-posts="5" data-width="600"></div>
<div data-href="<?php bloginfo('url'); ?>/?p=<?php the_id() ?>" data-num-posts="5" data-width="600"></div>
(참고 : <a href="http://wordpress.org/support/topic/solution-how-to-change-permalinks-without-losing-facebook-commentslikes" target="_blank">http://wordpress.org/support/topic/solution-how-to-change-permalinks-without-losing-facebook-commentslikes</a>)

그런데... YOUR_URL/?p=php the_id()는 wp_get_shortlink()와 같으므로... <strong>php the_permalink()를 wp_get_shortlink();</strong> 도 가능.
[code]<div data-href="<?php echo wp_get_shortlink(); ?>" data-num-posts="5" data-width="600"></div>

(참고 : http://codex.wordpress.org/Function_Reference/wp_get_shortlink)

php wp_get_shortlink()를 적용할때는 php echo wp_get_shortlink()로 사용하세요. echo를 넣지 않으니 작동은 합니다만, 경고메세지가 같이 나오네요.

 


저는 가능한 플러그인을 사용하지 않으려고 하는 편이지만,

만약, 플러그인으로 페이스북 기능을 사용 중이라면 해당 플러그인의 php 파일을 동일한 방법으로 수정하면 무리없이 적용될 것입니다. 대부분 플러그인은 php the_permalink()를 사용하고 있으니까요.


 

지금 생각해보면 의외로 간단한건데, 막상 문제가 생기면 도무지 해결방법이 떠오르지 않더군요. 역시 창의력이 부족한 코딩은 그냥 노가다일 뿐인가 봅니다.

 

 

Trackbacks/Pingbacks

  1. 1개 페이지에 2개 이상의 페이스북 댓글 박스 넣기 | eastsocial - [...] 참고링크 : permalink 변경 후 facebook comment 와 like 불러오기 [...]

Submit a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" extra="">

Share This