WordPressのシングルページで、そのページのスラッグを取得する方法。
標準の投稿でもカスタム投稿タイプのシングルページ(テンプレートファイル「single-$posttype.php」が適用されるページ)でも、同じ方法で取得できます。
$post->post_name;
取得したスラッグを使ってみた例
最近制作させていただいたサイトで、以下のようなものがありました。
- カスタム投稿タイプAとBを用意
- AのシングルページとBのタームのスラッグに共通のものを設定
- Aのシングルページに、同じスラッグを持つBのタームの記事一覧を表示
そのためループの配列で取得したスラッグがタームに入るようにして、カスタム投稿タイプAのシングルページにカスタム投稿タイプBの記事一覧が表示されるようにしました。
<?php
$args = array(
'post_type' => 'gallery', //カスタム投稿タイプ
'taxonomy' => 'artist', //タクソノミー
'term' => $post->post_name, //タームにシングルページのスラッグを入れる
'posts_per_page' => 10 //表示件数
);
$wp_query = new WP_Query( $args );
if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post();
?>
//ここにループの内容が入ります。
<?php endwhile; else : ?>
<p>記事がありません。</p>
<?php
endif;
wp_reset_query();
?>