WordPressの独自タグに、投稿や固定ページのパーマリンク(URL)を取得・表示出来るタグがあります。
先日解説した投稿や固定ページのタイトルを取得・表示する方法【WordPress】と同じように、簡単に取得・表示が出来ます。今回は、投稿や固定ページのパーマリンク(URL)を取得・表示する方法を解説していきます。
取得と表示の違いについて
WordPressの独自タグの中には、取得のみをするものと、取得し表示するものがあります。
取得のみの場合は、そのままでは表示されませんので、別途echoなどで出力する必要があります。取得・表示するものに関してはその両方を同時に行ってくれますので、別途出力する必要はありません。
the_permalink()
投稿・ページのパーマリンク(URL)を取得・表示するタグとなります。
このタグはループ内で使用でき、ループ外では別途解説する引数が必要になりますので注意してください。
<?php
the_permalink();
// 実行結果:https://cdg-blog.jp/●●●●●●/
?>
<!-- よくある使用方法 -->
<a href="<?php the_permalink(); ?>">投稿・固定ページのタイトル</a>
また、the_permalink()タグは内部でエスケープ処理が行われている為、別途エスケープ処理は必要ありません。
エスケープ処理とは
HTMLタグや記号などの表示に不具合が発生するものや、悪意あるスクリプトの実行を防ぐ為の処理となります。
そういった文字種を変換する為に必要な対策となります。
URLをエスケープ処理する為にはesc_url()タグを使用します。
引数について
the_permalink()タグは、引数を設定する事が出来ます。
第1引数のみで、投稿や固定ページのIDを指定する事で、指定の投稿や固定ページのパーマリンク(URL)を取得・表示出来ます。
<?php
// IDが「20」の投稿・固定ページのパーマリンク(URL)を取得・表示
the_permalink(20);
?>
get_the_permalink()
投稿・ページのパーマリンク(URL)を取得するタグとなります。
このタグはループ内・ループ外どちらでも使用出来ますが、ループ外で使用する場合は引数に投稿・固定ページのID(投稿オブジェクトでも可)を指定する必要があります。
また、このタグは取得のみを行いますので、出力するには別途echoが必要になります。
<?php
// ループ内では引数は不要
$permalink = get_tht_permalink();
// echo で出力
echo $permalink;
?>
get_the_permalink()タグはエスケープ処理はされていませんので、出力する際に別途エスケープ処理が必要になります。(必須ではありませんが、エスケープ処理を推奨します)
<?php
// esc_url()でエスケープ処理
echo esc_url(get_tht_permalink());
?>
引数について
get_the_permalink()タグには、引数を設定する事が出来ます。
第1引数には投稿や固定ページのID(投稿オブジェクトでも可)を指定する事がで、指定した投稿やページのタイトルを取得できます。
第2引数にはfalseまたはtrueを指定可能で、trueを指定するとWordpress管理画面の「設定 → パーマリンク設定」で設定したパーマリンク構造を取得する事ができます。デフォルトではfalseとなり、省略可能です。
<?php
// 第2引数にtrueを指定するとパーマリンク構造を取得
echo get_the_permalink(投稿や固定ページのID,true);
// パーマリンク設定で「投稿名」に設定している場合
// 実行結果:https://cdg-blog.jp/%postname%/
?>
さいごに
いかがでしたでしょうか。
今回は、投稿や固定ページのパーマリンク(URL)を取得・表示する方法を解説しました。
パーマリンク(URL)の取得・表示はWordpressでは必ず使用しますので、それぞれの特性・使用方法をしっかりと覚えておくと便利です。