WordPressで投稿タイプの一覧やカスタム投稿タイプの一覧を取得する

get_post_types

WordPressで投稿タイプの一覧やカスタム投稿タイプの一覧を取得するコードの例です。

作成したいプラグインでカスタム投稿タイプの一覧を取得したかったので調べてたのですが、ブログにメモ書き。

  

この記事は1年以上前に書かれたものです。
情報が古い可能性があります。

有効な投稿タイプの一覧を取得する

index.php

<?php
// 投稿タイプの一覧を取得します
$args = array(
			'public' => true
		);
$post_types = get_post_types( $args );
?>

<?php /** 取得した投稿タイプ一覧を出力します */ ?>
<?php if( count( $post_types ) != 0 ) : ?>
	<ul>
		<?php foreach ( $post_types as $post_type ) : ?>

			<li><?php echo $post_type; ?></li>
			
		<?php endforeach; ?>
	</ul>
<?php endif; ?>

表示結果

・post
・page
・attachment
・event
・news

カスタム投稿タイプの一覧を取得する

‘public’ => true と一緒にパラメータに ‘_builtin’ => false を指定することで、カスタム投稿の一覧が取得できます。
こちらは英語版のCodexに説明がありました。

index.php

<?php
// カスタム投稿タイプの一覧を取得します
$args = array(
			'public' => true,
			'_builtin' => false
		);
$post_types = get_post_types( $args );
?>

<?php /** 取得したカスタム投稿タイプ一覧を出力します */ ?>
<?php if( count( $post_types ) != 0 ) : ?>
	<ul>
		<?php foreach ( $post_types as $post_type ) : ?>

			<li><?php echo $post_type; ?></li>
			
		<?php endforeach; ?>
	</ul>
<?php endif; ?>

表示結果

・event
・news

投稿タイプのラベル (名称) も取得する

get_post_type_objectを使用して投稿タイプのラベル (名称) も表示可能です。

index.php

<?php
// カスタム投稿タイプの一覧を取得します
$args = array(
			'public' => true,
			'_builtin' => false
		);
$post_types = get_post_types( $args );
?>
 
<?php /** 取得したカスタム投稿タイプ一覧を出力します */ ?>
<?php if( count( $post_types ) != 0 ) : ?>
	<ul>
		<?php foreach ( $post_types as $post_type ) : ?>
			<li>
				<?php echo $post_type; ?>
				・・・
				<?php echo esc_html( get_post_type_object( $post_type )->label ); ?>
			</li>
			<?php endforeach; ?>
	</ul>
<?php endif; ?>

表示結果

・event ・・・ イベント 
・news ・・・ ニュース

参考

  

共有やブックマークなど