正確を期すために、下記のそれぞれが、できているか、まだできていないかを教えてください。
- 投稿タイプ post のタクソノミー category の各タームの記事一覧を表示できている(blog と event の記事が混じらずに)(テンプレートは index.php)。
- 投稿タイプ blog のタクソノミー category の各タームの記事一覧を表示できている(post と event の記事が混じらずに)(テンプレートは index.php)。
- 投稿タイプ event のタクソノミー category の各タームの記事一覧を表示できている(post と blog の記事が混じらずに)(テンプレートは index.php)。
gblsm 様
返信ありがとうございます。
現在index.phpで表示させているのは、postとblogで取得できています。
<?php
$taxonomy = $wp_query->get_queried_object();
$args = array(
'post_type' => array('post','blog'), // 複数のカスタム投稿タイプ名
'posts_per_page' => 18,
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => 'category', // タクソノミー名
'terms' => array( $taxonomy->slug ),
'field'=>'slug'
)
)
);
?>
<?php $loop = new WP_Query( $args ); ?>
<?php if($loop -> have_posts()): ?>
<?php while($loop -> have_posts()): $loop->the_post();?>
ループ内容
<?php endwhile; ?>
<?php endif; ?>
post_type' => post
などで指定すれば1. 2. 3.の一覧表示は可能です。
index.phpで表示するやり方が違うのかもしれませんが…。
どうぞよろしくお願いいたします。
index.php は「他に適切なテンプレートがないときに最終的に使われる」テンプレートなので、特定のタクソノミーや投稿タイプだけしか表示できないのはお勧めしません。
標準的なコードに戻して pre_get_posts アクションフックの利用をお勧めします。
参考記事
https://gatespace.jp/2012/09/10/modify_main_queries/
gblsm 様
>index.php は「他に適切なテンプレートがないときに最終的に使われる」テンプレートなので、特定のタクソノミーや投稿タイプだけしか表示できないのはお勧めしません。
そうなのですね。
pre_get_posts アクションフック、やってみます。
ありがとうございました。
追記です。
アーカイブページのパーマリンクをわかりやすくするには Custom Post Type Permalinks プラグインが便利だと思います。
例えば下記のようなパーマリンクが使えます。
example.org/post_type/taxonomy_name/term_slug
プラグインページ
https://ja.wordpress.org/plugins/custom-post-type-permalinks/
-
この返信は6年、 3ヶ月前にgblsmが編集しました。