質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

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

PHP

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

Q&A

解決済

1回答

3434閲覧

[wp]複数のカスタム投稿一覧の時に、一つのカスタム投稿だけターム指定をしたい。

cues

総合スコア23

WordPress

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

PHP

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

0グッド

1クリップ

投稿2017/02/10 02:07

お世話になります。

2つのカスタム投稿のタイトル一覧記事を作成したいと思っています。

post_type:「news」「flyer」 があり、
「news」は、ターム「event」のみを出力し、「flyer」 に関してはターム指定がなくすべての記事を表示したいです。

下記のようにすると、「flyer」 もターム指定してしまい困っております。

宜しくお願いいたします。

php

1 2<?php 3 $toplist = array( 4 'post_type' => array('news','flyer'), 5 'tax_query' => array( 6 'relation' => 'OR', 7 array( 8 'taxonomy' => 'news_cat', /* 指定したい投稿タイプが持つカスタム分類を指定 */ 9 'field' => 'slug', 10 'terms' => 'event', /* 指定したカスタム分類が持つタームのスラッグを指定 */ 11 ), 12 array( 13 'taxonomy' => 'flyer_cat', /* 指定したい投稿タイプが持つカスタム分類を指定 */ 14 'field' => 'slug', 15 'terms' => 'gas', /* 指定したカスタム分類が持つタームのスラッグを指定 */ 16 ), 17 ), 18 'showposts' => 10, 19 'order' => 'DESC', 20 'orderby' => 'date', 21 'ignore_sticky_posts' => 1, 22 ); 23 ?> 24 25 <?php query_posts($toplist); ?> 26 27 28 <?php if (have_posts()): ?> 29 <ul> 30 31 <?php while(have_posts()):the_post(); ?> 32 <?php $post_type = esc_html(get_post_type_object(get_post_type())->name); ?> 33 <?php if($post_type=='news'): ?> 34 <li><span><?php the_time('Y.m.d'); ?></span><span><a href="<?php bloginfo('url'); ?>/news/#<?php the_ID(); ?>"><?php echo mb_substr($post->post_title, 0, 30).'…'; ?></a></span></li> 35 36 <?php else : ?> 37 <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> 38 <?php endif; ?> 39 <?php endwhile; ?> 40 41 </ul> 42 <?php else : ?> 43 <p>ただいま準備中です。しばらくお待ちください。</p> 44 <?php endif; ?> 45 46 <?php wp_reset_postdata(); wp_reset_query(); ?> 47 48 49

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

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

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

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

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

guest

回答1

0

ベストアンサー

参考URL1の回答を参考にして、以下のようにしてみてはいかがでしょうか?

PHP

1// 本コードは未試験です 2$toplist = array( 3 'post_type' => array('news','flyer'), 4 'tax_query' => array( 5 'relation' => 'OR', 6 array( 7 'taxonomy' => 'news_cat', /* 指定したい投稿タイプが持つカスタム分類を指定 */ 8 'field' => 'slug', 9 'terms' => 'event', /* 指定したカスタム分類が持つタームのスラッグを指定 */ 10 ), 11 array( 12 'taxonomy' => 'news_cat', 13 'operator' => 'NOT EXISTS', 14 ), 15 ), 16 'showposts' => 10, 17 'order' => 'DESC', 18 'orderby' => 'date', 19 'ignore_sticky_posts' => 1, 20);

参考URL
0. トピック: 2つのカテゴリー+カスタムフィールドの値で条件設定 - サポートフォーラム - WordPress
https://ja.wordpress.org/support/topic/2%E3%81%A4%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%EF%BC%8B%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E5%80%A4%E3%81%A7%E6%9D%A1%E4%BB%B6
0. 関数リファレンス/WP Query - WordPress Codex 日本語版
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.81.AE.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF

投稿2017/02/10 06:43

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

cues

2017/02/10 06:53

大変助かりました!思い通りに動作いたしました(^^)!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問