カスタム投稿のアーカイブ表示(2)

「タグのリンクをクリックしても「NOT FOUND」です」というご指摘を頂きそうなので、
カスタム投稿のアーカイブ表示の改善を行いましたのでご紹介いたします。

カテゴリーのアーカイブ一覧のみしか対応できていなかった

カスタム投稿のアーカイブ表示の対応では、カテゴリーのアーカイブ一覧表示は対応できていましたが、他にもタグや投稿者のリンクをクリックし、アーカイブ一覧を表示させても、
NOT FOUND
が表示されておりました。
これは、前回の対応では、「is_category()」を用いて、投稿タイプの変更を行っていたためです。
そのため、カスタム投稿の「post」とは異なる投稿タイプで投稿された記事はカテゴリー以外のアーカイブでは表示されず、
NOT FOUND
となっておりました。

カテゴリー以外のアーカイブ一覧にカスタム投稿を追加する

本題です。
「functons.php」のバックアップを取得し、以下を追記、もしくは編集します。

function add_page_to_tag_archive( $obj ) {
global $wp_the_query;
if( $wp_the_query === $obj && $obj->is_archive() && !is_admin() ) {
$obj->query_vars[‘post_type’] = Array(
  ‘post’,
  ‘hogehoge’,
  );
}
}
add_action( ‘pre_get_posts’, ‘add_page_to_tag_archive’ );

これにより、カスタム投稿「hogehoge」がアーカイブの一覧に追加されます。
「!is_admin()」による条件分岐を含まないと、管理画面のカスタム投稿が混じってしまいますのでご注意ください。

まとめ

前回の記事では対応が不足しておりました。
「is_archive()」に変更したことで、また新たな不具合を呼ばないことを祈ります。
うまくいかないなどのご要望がありましたらお問合せからご連絡ください。

0
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存