WordPressの投稿ではカテゴリーやタグを設定できますが、固定ページでは設定できません。固定ページでもカテゴリーやタグを設定したい、ということもあるかと思います。
そこで今回は、固定ページでもカテゴリーやタグを使えるようにする方法を紹介したいと思います。
固定ページでカテゴリーを使えるようにする方法
固定ページでカテゴリーを利用できるようにするには、利用しているテーマのfunctions.phpに以下のコードを追加します。
// 固定ページにカテゴリーを設定 function add_categorie_to_pages(){ register_taxonomy_for_object_type('category', 'page'); } add_action('init','add_categorie_to_pages'); // カテゴリーアーカイブに固定ページを含める function add_page_to_category_archive( $query ) { if ( $query->is_category== true && $query->is_main_query() ) { $query->set('post_type', array( 'post', 'page' )); } } add_action( 'pre_get_posts', 'add_page_to_category_archive' );
これで固定ページにカテゴリーが紐付けられます。
固定ページでタグを使えるようにする方法
固定ページでタグを利用できるようにするには、利用しているテーマのfunctions.phpに以下のコードを追加します。
// 固定ページにタグを設定 function add_tag_to_page() { register_taxonomy_for_object_type('post_tag', 'page'); } add_action('init', 'add_tag_to_page'); // タグアーカイブに固定ページを含める function add_page_to_tag_archive( $obj ) { if ( is_tag() ) { $obj->query_vars['post_type'] = array( 'post', 'page' ); } } add_action( 'pre_get_posts', 'add_page_to_tag_archive' );
これで固定ページにタグが紐付けられます。
あとがき
上述した2つのコードを追加すれば、管理画面で固定ページの下にカテゴリーとタグの設定メニューが出てきます。
固定ページの編集画面では、カテゴリーとタグのウィジェットも追加されます。
カテゴリーやタグのアーカイブに固定ページを出力したい時なんかは、ぜひお試しください。
はじめまして。
カテゴリーページに同スラッグの固定ページを表示させたいと思って、さまよっておりましたら、こちらに行き着きました。
固定ページにカテゴリーの紐付けが出来れば、それをカテゴリーページに表示できるのではないかと思ったのです。
しかし紐付けして、それをどうすれば良いのかが見えてこず…
もしご存じのことがあれば、ぜひご教授いただければと思った次第です。
固定ページにカテゴリーを設定したら、「カテゴリーアーカイブに固定ページを含める」の方のコードもfunctions.phpに追加することで、カテゴリーアーカイブに固定ページが出てくるようになります。
回答ありがとうございました。
その記述はすでにしてあるのですが表示されなくて。
カテゴリーに属する記事一覧を表示するために、
<?php
global $query_string;
query_posts($query_string . ‘&posts_per_page=5&order=DSCE’);
?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li><?php the_title(); ?><?php the_excerpt(); ?></li>
<?php endwhile; endif; ?>
というソースを書いています。
この一覧の中に出てくるのかと思っていたのですが…
order=DSCEは、正しくはorder=DESCだと思いますが、これは関係ないですか?
何ともお恥ずかしい書き間違い…
ですが、これは関係ありませんでした。
自力で何とかしようと思います。
おつきあいいただき、ありがとうございました!
まだ見てくれているかわかりませんが、検証してみました。テーマはTwenty Fifteenです。
ループを以下のように記述すると、ちゃんと固定ページも表示されました。
<?php if ( have_posts() ) : ?>
<ul>
<?php while ( have_posts() ) : the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php the_excerpt(); ?>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
これをcategory.phpなどに記述すればうまくいくと思われます。
※「<」と「>」はすべて全角で書いているので、半角にして記述してください。
本当にありがとうございました(´;ω;`)
これで固定ページにカテゴリをつけて、固定ページ一覧から、カテゴリで絞込み検索をすると、「無効な投稿形式。」というエラーが出て、カテゴリでの検索ができませんが、どうやって回避すればいいでしょうか?
いくつかの環境で確認してみましたが、問題なく絞り込みもできているので、上記の記述とは別の何かが関係していると思われます。ただ、具体的な要因・回避策は不明です。