워드프레스 – get_permalink, add_query_arg

워드프레스 템플릿이나 특정 php 를 제작할 때 링크를 추가하는 경우 사용할 수 있는 방법이다.
기존의 방식을 사용해도 문제는 없으나, 주소가 변하기 때문에 사용자들의 혼돈을 야기할 수 있다.
(물론 설정에 따라 /?p=1234 형식의 주소를 그대로 노출시킬 수 있다)

get_permalink 함수를 사용해 링크를 입력하면 링크의 href 자체에 각 페이지들의 완전한 주소를 넣을 수 있게 된다.

기존

<a href="/?p=1234">page</a>

마크업 상에서의 출력 <a href="/?p=1234">page</a>

permalink 사용

<a href="<?php echo get_permalink(1234); ?>">page</a>

마크업 상에서의 출력 <a href="http://example.com/page">page</a>

만약 링크에 파라미터를 추가해야 한다면 ?

/?p=1234&key=value 와 같은 링크에 파라미터를 넘겨야 할 경우엔 add_query_arg() 함수를 사용하면 된다.

<?php echo add_query_arg( 'key', 'value', get_permalink(1234) ); ?>

이렇게.

주소의 경우 get_permalink 가 아닌 '/?p=1234' 형식을 사용해도 무방하다.

복수의 파라미터를 사용하려면?

add_query_arg( array(
    'key1' => 'value1',
    'key2' => 'value2',
), get_permalink(1234) );

이렇게 작성하고

$query = 'http://example.com/link?foo=bar';
$new_query = add_query_arg( array(
    'foo' => false,
    'baz' => 'qux'
), $query );
// http://example.com/link?baz=qux
$new_query2 = add_query_arg( array(
'key1' => 'value1',
'key2' => 'value2',
), get_permalink(1234) );
// http://example.com/page1234?key1=value1&key2=value2
<a href="<?php echo $new_query; ?>">page</a>
<a href="<?php echo $new_query2; ?>">page2</a>

이렇게 변수에 담에서 사용하면 된다.


참고 사이트

https://developer.wordpress.org/reference/functions/get_permalink/

https://developer.wordpress.org/reference/functions/add_query_arg/

본문에 대해 문의가 있으신 분은 post@wallel.com로 이메일 보내주세요.
본문 외에 추가 문의 사항은 문의하기를 통해주시기 바랍니다.