JOURNAL クリエイティブとマーケティングの話

WordPressの投稿・カスタム投稿タイプのシングルページでスラッグを取得する方法

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();
?>