カスタムタクソノミーのアーカイブでループが投稿データを取得していな
-
お世話になります。
Googleでヒットしたページとここの過去ログを一ヶ月分くらい読んだのですが、どうも抜け出せないので質問させていただきます。
【やりたいこと】
カスタム投稿「コミック」(スラッグcomics)とカスタムタクソノミー「作家」(スラッグauthor)を設定しています。「作家」では作家名をタームにして投稿していきます。function.phpのコードは以下のとおりです。
function add_custom_post_type(){ register_post_type('comics',array( 'label' => 'コミック', 'public' => true, 'has_archive' => true, )); } add_action('init', 'add_custom_post_type' ); function add_custom_taxonomy(){ register_taxonomy( 'author', 'comics', array( 'label' => '作家', 'hierarchical' => true, ) ); } add_action('init', 'add_custom_taxonomy' );
この状態で、パーマリンク設定を /%category%/%post_id%/ にしており、例えば、http://ドメイン名/author/toriyama とすれば作家「鳥山」のコミック一覧が出てくるようにしたいのです。
【現状】
taxonomy.php を作成しており、例えば http://ドメイン名/author/toriyama のときにtaxonomy.php が適用されていることは確認済みです。しかし、taxonomy.php に記述しているループがカスタム投稿のデータを取得しておらず、the_title や the_contents を使って表示させることができません。
taxonomy.php に記述しているループは、一番基本的なアレです。
<?php if(have_posts()): while(have_posts()): the_post(); ?> <!--記事--> <div class="post"> <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <?php the_content(); ?> <p class="postinfo"> <?php the_date(); ?><?php the_time(); ?> </p> </div> <?php endwhile; endif; ?>
print_r でグローバル変数 $wp_query の中身を見てみたところ、posts が空っぽでした。よって、ちゃんと取得できていないのだと思います。
【疑問点】
get_posts() や query_posts() でパラメーターを設定すればカスタムタクソノミーで絞り込んだデータを取得できることは分かっているのですが、そもそもワードプレスはパーマリンクに応じて自動的に適切な投稿データを取得してくれるはずではなかったでしょうか。私の設定に何か漏れがあるのでしょうか。まだ勉強し始めたばかりなので、基本的なところで失敗していたらすみません。
環境は、
ワードプレスver. 3.6.1
さくらインターネット+お名前ドットコムで独自ドメイン
です。よろしくお願いいたします。
- トピック「カスタムタクソノミーのアーカイブでループが投稿データを取得していな」には新たに返信することはできません。