タイトルわかりづらいかもしれません。要するに、、
ここに「ニュース(news)」「お弁当(bento)」というカスタム投稿タイプを持ったサイトがあるとします。
ニュースの投稿に「お弁当」というタグを付けると、お弁当の一覧(archive.php)にそのニュースのタイトルと日付と・・・が表示されるというわけです!
それでもわかりづらいな。
※あらかじめnewsには「お弁当(tags-bento)」というタグを作成しておきます。
コードはこれ。お弁当の一覧に表示させるため、archive.phpに追加しました。
<?php
$slug = explode('/', $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
$archive_slug = $slug[1]; // https://sample.com/bento/の"bento"を取得。
$archive_tags_slug = 'tags-'.$archive_slug; //tags-bentoを作成。
//news投稿の中でtags-bentoがついた投稿を抽出。
query_posts( array(
'post_type' => 'news',
'tags_topics' => $archive_tags_slug,
'paged' => $paged,
'orderby' => 'date',
'order' => 'DESC'
));
//現在のpost_type "bento"を定義。(newsクエリー内でも使えるように)
$obj = get_post_type_object( $archive_slug );
$post_type = $obj->labels->singular_name;
if(have_posts()):
?>
<div id="tag_list">
<h2><span><?php single_tag_title(); ?>関連の投稿</span></h2>
<ul>
<?php while(have_posts()):the_post();?>
<li><?php echo get_the_date('Y.m.d');?> <a href="<?php the_permalink();?>"><?php the_title();?></a></li>
<?php endwhile; ?>
</ul>
</div>
<?php endif; wp_reset_query(); ?>
一度に別の投稿タイプを動かすため、post_typeの値が混乱しちゃいます。
だからめんどくさいけどそのページのURLから取ってくるというやり方で解決しました・・・。
もっといいやり方があるのかも?
