WordPressでは、投稿のURLの一部として使用される「スラッグ」は、カスタムURLや条件分岐、クエリ処理などで活用されることが多い重要な情報です。本記事では、投稿のスラッグを取得する具体的な方法を紹介します。
スラッグとは?
スラッグ(slug)とは、投稿や固定ページ、カスタム投稿タイプに割り当てられるURLの末尾部分のことで、通常は英数字で構成されます。たとえば、https://example.com/sample-post
というURLの sample-post
がスラッグにあたります。
現在表示中の投稿のスラッグを取得する方法
テンプレートファイル内で、現在表示されている投稿のスラッグを取得するには、以下のようなコードを使用します。
<?php
$slug = get_post_field( 'post_name', get_post() );
echo esc_html( $slug );
?>
get_post()
で現在の投稿オブジェクトを取得し、get_post_field()
関数で post_name
(=スラッグ)を取り出しています。
ループ内で投稿のスラッグを取得する場合
WordPressループの中で投稿ごとにスラッグを取得したい場合は、以下のように記述します。
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
$slug = get_post_field( 'post_name', get_the_ID() );
echo '<p>スラッグ: ' . esc_html( $slug ) . '</p>';
endwhile;
endif;
?>
特定の投稿IDからスラッグを取得する
特定の投稿IDが既に分かっている場合、その投稿のスラッグは次のように取得できます。
<?php
$post_id = 123; // 任意の投稿ID
$slug = get_post_field( 'post_name', $post_id );
echo esc_html( $slug );
?>
まとめ
スラッグは、カスタムリンクや条件分岐の判定に使える便利な情報です。get_post_field( 'post_name', ... )
を活用すれば、現在表示中の投稿・ループ中の投稿・特定IDの投稿いずれにおいても柔軟にスラッグを取得できます。WordPressでカスタムな処理を行う際にはぜひ活用してみてください。