フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【WordPress】カスタム投稿のシングルページを生成しない方法

WordPress
カスタム投稿
プレビュー

こんにちは、岐阜・名古屋を拠点に全国各地からご依頼いただくWEBサイトを制作しているフリーランスエンジニアの寺井です。

WordPressのカスタム投稿を作成すると、アーカイブページとシングルページが生成されます。
これがカスタム投稿の標準機能であり、標準的な構成になっていますが、WEBサイトの構成によってはアーカイブページだけ必要で、シングルページは不要という場合も。
不要なページを生成してしまうのはSEO的にもよくありません。
今回の記事ではカスタム投稿のシングルページが不要な場合、シングルページを生成しない方法をご紹介します。

カスタム投稿のシングルページが不要になる場面

WEBサイトの構成によってはカスタム投稿のシングルページが不要になる場合があります。
例えば、「沿革」や「よくある質問」などをクライアントで簡単に変更出来るようにするために、カスタム投稿を使い更新画面を作った場合、それらは1ページに全て表示することが大半です。
しかし、カスタム投稿の標準機能では自動的にシングルページは生成されてしまいます。
このような場合は、カスタム投稿のシングルページは不要になる場面です。
そもそもシングルページが必要ない場合は、カスタム投稿を使わず、複製機能のあるAdvanced Custom Fields (ACF) などのカスタムフィールドを使うことも検討するようにします。

カスタム投稿のシングルページが不要な場合の対応方法

カスタム投稿のシングルページが不要な場合、以下の2つの対応をします。

  • カスタム投稿のシングルページの生成しない設定をする
  • プレビューボタンの扱い

カスタム投稿のシングルページを生成しない設定

カスタム投稿のシングルページを生成しないためには以下のコードをfunctions.phpに記述します。

add_filter( '●●●_rewrite_rules', '__return_empty_array');

●●●の部分にはカスタム投稿の投稿タイプ名を指定します。これだけの記述で、カスタム投稿のシングルページは生成されなくなります。

プレビューボタンの扱い

続いて、カスタム投稿の投稿画面に表示されるプレビューボタンの扱いについてです。

カスタム投稿のシングルページを生成しない場合、プレビューボタンの扱いは以下の2つからどちらかの対応を採用します。

  • プレビューボタンを非表示にする
  • プレビューボタンをクリックしたらアーカイブページを表示する

プレビューボタンを非表示にする

まずは、プレビューボタンを非表示する方法です。
プレビューボタンを非表示にするには以下のコードをfunctions.phpに記述します。

add_action('admin_print_styles', 'my_admin_print_styles');
function my_admin_print_styles() {
    $current_screen = get_current_screen();
    if( isset( $current_screen ) && ( $current_screen->post_type === '●●●' ) ) {
        $style = '<style>#preview-action {display: none;}</style>';
        echo $style;
    }
}

●●●の部分にはカスタム投稿の投稿タイプ名を指定します。

これで指定したカスタム投稿の投稿画面ではプレビューボタンが表示になります。

プレビューボタンを押したらアーカイブページを表示する

次にご紹介するのはプレビューボタンをクリックしたらアーカイブページを表示する方法です。
プレビューボタンを押した時、表示されるページのテンプレートファイルは「single-●●●.php」です。
●●●の部分はカスタム投稿の投稿タイプ名を指定します。
このテンプレートファイルを作成し、テンプレートファイル内に以下のように記述します。

<?php get_header(); ?>
<?php echo get_template_part('archive-●●●'); ?>
<?php get_footer(); ?>

●●●の部分にはカスタム投稿の投稿タイプ名を指定します。

こうすることで、プレビューボタンをクリックした時、詳細ページのテンプレートファイルが読み込まれ、アーカイブページを表示することが出来ます。

まとめ

いかがでしたか?
WordPressは自由度が高いため、どんな構築方法でもそれなりに動きます。
基本的にカスタム投稿はアーカイブページとシングルページはセットで使用しますが、中にはシングルページが不要な場合があります。
そんな時は今回ご紹介した方法でシングルページを生成しないようにしましょう。