WordPress、archiveページ/singleページの無効化のあれこれ
所沢市でWebサイト制作を行っているRishunTradingです。今回は、Wordpressの投稿機能についてです。
投稿機能には、投稿したものを一覧で表示するarchiveページ(一覧画面)と、詳細を表示するsingleページ(詳細画面)の構成を持っております。
ただし、利用シーンによっては、archiveページ(一覧画面)だけ利用する必要がなかったり、また、逆にsingleページ(詳細画面)だけ利用する必要がなかったりといったシーンがあるかなと思います。
今回は、このarchiveページ(一覧画面)だけ利用しない。singleページ(詳細画面)だけ利用しないといった事を実現するコードについて記載します。カスタム投稿、標準の投稿、両方記載します。
なお、やり方にはいろいろな方法がございますので、ここに掲載している内容は、一例とお考えの上、自己責任でカスタマイズしてください。
1.標準の投稿のarchiveページの無効化
標準投稿(post_type=’post’)のarchiveページを無効化にする方法です。お使いのテーマのfunctions.phpに本記載を行うと、標準投稿のarchiveページは、Not Found(ページが見つかりません)になります。Not Foundの表示レイアウトなどはお使いのテーマによります。
1 2 3 4 5 6 7 | add_action('pre_get_posts', 'my_pre_get_posts'); function my_pre_get_posts($query){ if (is_post_type_archive('post')) { // 標準投稿のarchiveページ無効化 $query->set('post_type', 'invalid_post_type'); $query->is_archive = false; } } |
pre_get_postsにアクションを追加し、is_archiveパラメータをfalseにする事で、archiveページを、Not Found(ページが見つかりません)にする事ができます。
2.標準の投稿のsingleページの無効化
標準投稿(post_type=’post’)のsingleページを無効化にする方法です。お使いのテーマのfunctions.phpに本記載を行うと、標準投稿のsingleページは、Not Found(ページが見つかりません)になります。Not Foundの表示レイアウトなどはお使いのテーマによります。
1 | add_filter( 'post_rewrite_rules', '__return_empty_array'); |
post_type=’post’のrewrite_rulesにフックをかけ、空で返却する事で、標準投稿のsingleページをNot Foundにする事ができます。
3.カスタム投稿のarchiveページの無効化
カスタム投稿のarchiveページを無効化にする方法です。お使いのテーマのfunctions.phpに本記載を行うと、カスタム投稿のarchiveページは、Not Found(ページが見つかりません)になります。Not Foundの表示レイアウトなどはお使いのテーマによります。
こちらは、カスタム投稿を’register_post_type関数’で作成する際に、rewriteパラメータ、及び、has_archiveパラメータをfalseにする事で、無効化(Not Found)にするのが良いかなと思います。
サンプル)カスタム投稿タイプ名(post_type=”example”)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | add_action('init', 'set_register_post_type'); function set_register_post_type($arg){ $ret = register_post_type('example', array( 'labels' => array( 'name' => 'example', 'singular_name' => 'example', 'add_new_item' => 'Add new example', 'edit_item' => 'Edit example' ), 'public' => true, 'rewrite' => false, //non archive 'menu_position' => 5, 'has_archive' => false, //non archive 'supports' => array('title', 'editor', 'thumbnail', 'excerpt') )); } |
4.カスタム投稿のsingleページの無効化
カスタム投稿のsingleページを無効化にする方法です。お使いのテーマのfunctions.phpに本記載を行うと、カスタム投稿のsingleページは、Not Found(ページが見つかりません)になります。Not Foundの表示レイアウトなどはお使いのテーマによります。
やり方は標準投稿の時と一緒です。
サンプル)カスタム投稿タイプ名(post_type=”example”)
1 | add_filter( 'example_rewrite_rules', '__return_empty_array'); |
post_type=’example’のrewrite_rulesにフックをかけ、空で返却する事で、カスタム投稿のsingleページをNot Foundにする事ができます。
以上、皆さまのお役に立てれば幸いです。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
運用開始後に「Webサイト運用管理サービス(保守)」と組み合わせて購入しますと、メンテナンス、更新も含めてすべて弊社で実施しますので、お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル