【WorddPress】カスタム投稿の一覧を取得する方法
カスタム投稿の一覧を取得する方法をご紹介します。WordPress関数「get_post_types」 と 「get_post_type_object」を用いてた良く使いそうなパターンをご紹介します。
- カスタム投稿を用いたサイト構築を行っている方
- WordPressプラグインの作成・開発をしている方
関数 get_post_types と get_post_type_object を使用
投稿タイプの一覧を取得するには関数 「get_post_types」 と 「get_post_type_object」 を使用します。
関数リファレンス/get post types – WordPress Codex 日本語版
関数リファレンス/get post type object – WordPress Codex 日本語版
投稿タイプの一覧取得・表示方法
下記に様々なパターンの投稿タイプの一覧の取得方法をご紹介いたします。
下記はそれぞれカスタム投稿「製品一覧(products)」「お知らせ(news)」「ブログ(blog)」が設定されているとします。
カスタム投稿タイプのみを表示する方法
3行目 '_builtin' => false
とすることで既存の投稿タイプを除外し、カスタム投稿タイプのみを取得することができます。
ソース
$args = array( 'public' => true, // 真偽値。true のとき、公開された(public な)投稿タイプのみが返されます。 '_builtin' => false ); $output = 'names'; // (文字列) (オプション) 戻り値の型を指定します。'names'(名前)または 'objects'(オブジェクト)。 $operator = 'and'; //(文字列) (オプション) $args で複数の条件を指定する場合の演算子('and' または 'or')。 $post_types = get_post_types( $args, $output, $operator ); foreach ( $post_types as $post_type ) { $object = get_post_type_object( $post_type ); echo '<h5>'.$object->label.'</h5>';//カスタム投稿名の表示 echo '<p>'.$object->name.'</p>';//スラッグの表示 }
表示
製品一覧
products
お知らせ
news
ブログ
blog
カスタム投稿タイプと既存の投稿タイプを表示する方法
ソース
$args = array( 'public' => true // 真偽値。true のとき、公開された(public な)投稿タイプのみが返されます。 ); $output = 'names'; // (文字列) (オプション) 戻り値の型を指定します。'names'(名前)または 'objects'(オブジェクト)。 $operator = 'and'; //(文字列) (オプション) $args で複数の条件を指定する場合の演算子('and' または 'or')。 $post_types = get_post_types( $args, $output, $operator ); foreach ( $post_types as $post_type ) { $object = get_post_type_object( $post_type ); echo '<h5>'.$object->label.'</h5>';//カスタム投稿名の表示 echo '<p>'.$object->name.'</p>';//スラッグの表示 }
表示
投稿
post
固定ページ
page
メディア
attachment
製品一覧
products
お知らせ
news
ブログ
blog
カスタム投稿タイプと既存の「投稿」のみ表示する方法
WordPress既存の投稿タイプ「固定ページ(page)」「メディア(attachment)」「リビジョン(revision)」「ナビゲーションメニュー(nav_menu_item)」を除外します。
ソース
$args = array( 'public' => true // 真偽値。true のとき、公開された(public な)投稿タイプのみが返されます。 ); $output = 'names'; // (文字列) (オプション) 戻り値の型を指定します。'names'(名前)または 'objects'(オブジェクト)。 $operator = 'and'; //(文字列) (オプション) $args で複数の条件を指定する場合の演算子('and' または 'or')。 $post_types = get_post_types( $args, $output, $operator ); foreach ( $post_types as $post_type ) { $object = get_post_type_object( $post_type ); $object_name = $object->name; if( ($object_name != 'page') and ($object_name != 'attachment') and ($object_name != 'revision') and ($object_name != 'nav_menu_item')){ echo '<h5>'.$object->label.'</h5>'; echo '<p>'.$object_name.'</p>'; } }
表示
投稿
post
製品一覧
products
お知らせ
news
ブログ
blog
以上です。プラグイン作成時に役立つかと思います。
[amazonjs asin=”4297107783″ locale=”JP” title=”WordPressデザインレシピ集”]