• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

株式会社ハイファイブクリエイト

東京都を拠点にWebサイト制作やシステム構築、WordPress保守管理やウェブコンサルティングを提供。

  • SERVICE
  • ABOUT
  • WORKS
  • BLOG
  • NEWS
  • CONTACT
ホーム / ブログ / TIPS / [WordPress]カスタムタクソノミーで分類した特定のタームに所属するカスタム投稿記事を取得し表示する

[WordPress]カスタムタクソノミーで分類した特定のタームに所属するカスタム投稿記事を取得し表示する

池田祐太郎 | 2018年6月2日 更新 | 2014年10月12日 公開 コメントを書く

WordPressネタです。
特定のカスタムタクソノミーに分類され、かつ特定のタームに所属するカスタム投稿記事を取得して、自由に表示するTIPSです。
マニアックですが、自分的にも忘れないようにメモ書きとして残しておきます。

目次

  • 1 カスタム投稿記事をループさせる
  • 2 タクソノミーとタームを設定してループさせる
    • 2.1 解説
    • 2.2 参考にした記事

カスタム投稿記事をループさせる

これはさほど難しくありません。ループにはquery_postやWP_Query、get_postsなどいくつか取得できるタグがありますが、get_postsで取得した例文です。

<?php $posts = get_posts(‘post_type=custom_posttype_name’); //カスタム投稿タイプ名をいれます ?>
<ul>
<li style=”list-style-type: none”>
<ul><!–?php foreach ($posts as $post) : setup_postdata($post); ?–>
<li></li>
</ul>
</li>
</ul>

これだけであれば以下のようにカスタム投稿記事のリンク付き記事一覧が生成されます。

Custom post list 2

簡単ですね。これならば問題ないんですが、一つのカスタム投稿内において、カスタムタクソノミーに分類され、いくつかタームを設定している場合もあると思います。そのように「特定のカスタム投稿タイプかつ、特定のタームに属する記事のみループさせたい」となると話が変わります。

タクソノミーとタームを設定してループさせる

仮に、投稿タイプを「制作事例」、タクソノミーを「エリア」、タームに「国内」「海外」となるカテゴライズされた記事があるとし、「国内だけの記事一覧を表示させる」というコードを書きます。

・カスタム投稿タイプ:制作事例(works)
・カスタムタクソノミー:エリア(area)
・ターム:国内(domestic)

<ul>
<li style=”list-style-type: none;”>
<ul><?php $args = array( ‘post_type’ =&gt; ‘works’, //投稿タイプは制作事例なのでworksに設定 ‘tax_query’ =&gt; array( //タクソノミー、タームの設定 array( ‘taxonomy’ =&gt; ‘area’, //タクソノミーはエリアなのでareaに設定 ‘field’ =&gt; ‘slug’, //基本的にslugに指定します(必須) ‘terms’ =&gt; ‘domestic’ //タームは国内なのでdomesticに設定 ) ) ); $domestic_post = get_posts($args); if($domestic_post) : foreach($domestic_post as $post) : setup_postdata( $post ); ?>
<li></li>
</ul>
</li>
</ul>
表示する記事がありません。

上記のような感じで表示ができました。
適宜変数や名称は変更してください。

解説

カスタム投稿タイプだけの時はget_postsに直接指定していましたが、タクソノミーやタームの指定をする場合、「tax_query」を指定する必要があり、配列で見た目的に別の変数に代入した方がわかりやすいため、今回は変数$argsを作成しています。

この「tax_array」は配列で指定する必要があり、「taxonomy」「field」「terms」を指定します。
タクソノミー、タームはそれぞれ該当する文字列を入力します。
fieldに関しては「タクソノミーをidかslugで選択する」ためにあるのですが、基本slugで設定しておくのが無難です。
これら指定を忘れると表示されずハマるので注意しましょう。僕はこれでハマりました。

get_postsで条件のループが取れれば、あとはforeachでループさせればOKです。

※query_postでも可能ですが、色々な記事を見ると不具合があったり、そもそもメインループを変更させたくない場合はget_postsまたはWP_Queryを使用します。
また、setup_postdata()の変数はグローバル変数$postに設定します。別の変数にしたら動きません。
参考:関数リファレンス/setup postdata

参考にした記事

  • お手軽WordPress Tips:カスタムタクソノミーで作成した特定のタームに属する記事の一覧を表示数を指定して表示する – かちびと.net
  • 【WordPress】カスタム投稿タイプの記事一覧を取得して表示するソースコード
  • 出遅れWPノート: query_postsでtax_query渡すときのfieldはnameではなくslugで
  • テンプレートタグ/get posts – WordPress Codex 日本語版
  • 関数リファレンス/WP Query – WordPress Codex 日本語版
メールコンサルティング
WordPress保守管理サービス

Filed Under: TIPS 関連タグ:WordPressカスタマイズ

池田祐太郎

WordPress の構築・保守を10年以上にわたって手掛けており、主に小〜中規模のコーポレートサイト・ECサイト・ブランドサイト等の企画・開発・保守・コンサルティングなどを行ってきました。2012年にハイファイブクリエイトを創業し、現在は WordPress の保守やコンサルティング、ディレクションや開発業務などを担当しています。 プロフィール詳細

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.

この記事と関連する記事

WordPressの固定ページでタグやカテゴリーを使いたいときはカスタム投稿タイプを検討する
2022年1月27日
タグ: WordPressカスタマイズ
カテゴリー: WordPress
フレームワークを使ってWordPressサイトをリニューアルしたら表示速度が速くなった話
2018年6月4日
タグ: Webサイト高速化, WordPressカスタマイズ
カテゴリー: WordPress, ホームページ制作, モバイル
WP固定ページや投稿内でphpファイルを読み込むショートコード
2018年4月1日
タグ: WordPressカスタマイズ
カテゴリー: TIPS

人気記事

  1. 同一サーバー上に構築するWordPressのテスト環境の作り方
  2. git pull してもエラーが出てファイルが反映されないときの対処法
  3. サイト制作の要件定義書に普段書いている内容(ダウンロード可)
  4. WordPressの固定ページでタグやカテゴリーを使いたいときはカスタム投稿タイプを検討する
  5. ダウンロードして即使えるサイトマップ(サイト構成図)のテンプレート5点
  6. WordPress において PHP 8.1 に更新していいかどうか検証

最初のサイドバー

WordPress保守管理サポート

Search

最近の投稿

  • WordPress サイトを多言語化するプラグイン5選(自動翻訳サービス除く)
  • ウェブサイトを自動的に多言語対応する各サービスを比較します
  • WooCommerce のバリエーションのある商品を追加して売上向上を図る
  • 目次生成プラグインの TOC+ が表示されなくなったときの対処法
  • ChatGPT の有料版「ChatGPT Plus」を使ってみた

カテゴリー

  • CSS初心者
  • HTML初心者
  • TIPS
  • WooCommerce
  • WordPress
  • エステサロン
  • お知らせ
  • キュレーション
  • サイトマップ
  • システム会社
  • デベロッパーツール入門
  • ブログ
  • ホームページ制作
  • ホームページ制作無料講座
  • メール
  • モバイル
  • 仕事のこと
  • 制作実績
  • 整体院
  • 美容院
  • 雑感

タグ

Android BtoC CMS css elementor git Google+ google workspace Gutenberg HTML iPhone jQuery Mac MAMP php SEO SNS SSL Sublime Text Webサイト高速化 Windows WordPress WordPressカスタマイズ WordPressテーマ WordPress構築調査 WPRocket アクセス解析 アプリ クラウドソーシング サイト引っ越し サブスクリプション サーバー ショートカットキー スマホサイト スマートフォン ツール フルサイト編集 ブログ プラグイン マーケティング リニューアル 保守管理 多言語 最適化 集客するサイト構築

アーカイブ

CONTACT

お問い合わせはこちら

Footer

  • PRIVACY POLICY
  • 情報セキュリティ基本方針
  • 特定商取引法に基づく表示
  • 転載/引用

© 2023 high five create All rights reserved.