🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

847閲覧

【WordPress】特定のタームに属する特定の記事を表示したい

kfp

総合スコア11

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/12/02 08:40

前提・実現したいこと

WordPressで記事を表示する際、
特定のタームに属し、その中から表示する記事を投稿スラッグで指定したいです。

タクソノミー(ABC)
ターム(abc)
投稿スラッグ(toukou)

例えば上記のような投稿があるとして、次のように記述すると記事は表示はされますが
ターム(abc)から外しても、nameが優先されるためか記事は表示されたままとなってしまいます。

'taxonomy'=>'ABC','term'=>'abc','name'=>'toukou'

タームを外した場合は、nameの指定があったとしても
記事を表示されないようにしたいのです。

どなたかご教示いただきますと幸いです。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

下記のようにループ内にifを入れることで切り替えられるようになりました。
ご協力いただき、ありがとうございました。

PHP

1$args = array( 2 'post_type' => 'post', 3 'name' => 'toukou' 4); 5$the_query = new WP_Query( $args ); 6 7while($the_query->have_posts()): $the_query->the_post(); 8 if(has_term('abc','ABC')): 9 echo '表示したい内容'; 10 endif; 11endwhile;

投稿2020/12/03 03:39

kfp

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

WP_Query() のパラメーターで表現するとこんな感じでしょうか。

PHP

1$args = array( 2 'post_type' => 'post', 3 'name' => 'toukou', 4 'tax_query' => array( 5 array( 6 'taxonomy' => 'ABC', 7 'field' => 'slug', 8 'terms' => 'abc', 9 ), 10 ), 11); 12$the_query = new WP_Query( $args );

この場合、'name' => 'toukou' という投稿スラッグで一つの記事に絞り込まれてしまうので 'name' => 'toukou' を外す必要があると思うのですが、この想定が間違っているかもしれません。
状況を理解するため確認をさせてください。

投稿2020/12/03 01:01

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kfp

2020/12/03 01:27

kazweda 様 ありがとうございます。 WP_Query()でしたら、その記述となります。 表示の条件としては、Aの固定ページへ、 abc内の記事を一覧ではなく、任意で1件ずつ表示させたいのです。 (コンテンツ中に配置される関連記事のようなイメージです) 現在は各ページに投稿スラッグのみで表示させているのですが、 ページ数が多くなり、どのページにどの記事を入れているのか管理が難しくなってきたため、 記事の投稿画面にあるカテゴリーチェックで表示/非表示を切り替えられれば、 管理が容易になるのではないかと考え質問させていただきました。 ですので、投稿スラッグを指定しつつ、 'terms' => 'abc' に入っていれば表示、入っていなければ非表示という方法が お分かりでしたらご教示いただきたく存じます。 よろしくお願い致します。
退会済みユーザー

退会済みユーザー

2020/12/03 02:10

投稿スラッグは標準のクエリで表示されていて、その関連記事のクエリを作りたいという想定です。 (読解力が足りないのかもしれません。間違っていたらすみません。) https://www.it-swarm-ja.tech/ja/wp-query/wpquery%E3%81%8B%E3%82%89%E6%8A%95%E7%A8%BFid%E3%82%92%E9%99%A4%E5%A4%96/956892466/ 例えばこの記事を参考に、投稿スラッグ(toukou)のPostIDを使って、関連記事のクエリ('term'=>'abc')から PostID を除外するクエリを組み立てるのはいかがでしょう。
kfp

2020/12/03 02:44

私の説明が悪かったのだと思います。申し訳ございません。 Aの固定ページの記事中に タームabc内にある、投稿スラッグtoukouを関連記事として表示させ、 toukouがタームabcから外れた場合は、Aページ内のtoukouの記事を非表示にしたい この内容で伝わるでしょうか・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問