워드프레스 템플릿이나 특정 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/