WordPress Logo

カスタム投稿タイプの一覧をドロップダウンメニューで表示する

タイトルの通り。ワードプレスのカスタム投稿タイプの一覧をドロップダウンメニューで表示、各項目を選択するとそれぞれのページにリンクするさせる方法を紹介します。

テンプレートファイルの、メニューを表示させたい箇所に、以下のPHPコードを記入してください。
custom-posts」は自身のカスタム投稿タイプのスラッグに書き換えてください。

<select name="custompost-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'> 
<option>店舗を選択</option>
<?php
$args = array(
	'numberposts' => -1,
	'post_type' => 'custom-posts' // カスタム投稿タイプを指定
);
$customPosts = get_posts($args);
if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post );
?>
<option value="<?php the_permalink(); ?>"><?php the_title_attribute(); ?></option>
<?php endforeach; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
</select>

まずは get_posts で情報を取得。引数の post_type で該当するカスタム投稿タイプを指定。
ここまでできれば、あとはセレクトボックスを作って、ループを回して option 要素に必要な要素を挿入するカタチで実現できます。

ウェブサイトのサイドバーなどで活用できるテクニックですね。
ぜひお試しください。