カスタム投稿のプレビューが404で表示されない時の対処方法
公開済みのカスタム投稿記事をプレビューをすると、「ページが見つかりませんでした」「NOT FOUND」など404エラーでプレビューが表示されない現象。
その原因は、投稿フォーマットにあるかもしれません。
カスタム投稿記事のプレビューが404で表示されない原因と、正常にプレビュー出来るようにする方法を解説します。
プレビューURLを確認
「ページが見つかりませんでした」となったプレビューのURLを確認してみましょう。
URLの中に&post_format=standard
というパラメータは含まれてますか?
これは「投稿フォーマット」のパラメータで、カスタム投稿ではプレビューが表示できない場合があります。
&post_format=standard
の部分を削除し、プレビュー画面を更新してみてください。
プレビューが正しく表示されたら「投稿フォーマット」が原因で確定です。
投稿フォーマットとは、記事の特性を区別するための機能です。
WordPressで投稿フォーマット機能を使えるようにするには、function.phpにadd_theme_support関数を追記します。
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
投稿フォーマットを有効にすると、投稿画面に「フォーマット」項目が追加されるようになります。
他にも「画像」や「リンク」「動画」など色々あります。
function.phpを修正する
投稿フォーマットを使ってない場合、機能そのものを無効してしまえば解決します。
function.phpに記述されているカスタム投稿関数を修正します。
'supports'
の配列にpost-formats
が含まれていると思います。
post-formats
を削除すれば、カスタム投稿で「投稿フォーマット」が無効になります。
register_post_type('custom_posts', array( 'labels' => array( 'name' => 'カスタム投稿', 'all_items' => 'カスタム投稿一覧', 'menu_name' => 'カスタム投稿', 'add_new' => 'カスタム投稿を追加', 'add_new_item' => '新しいカスタム投稿を追加', 'edit_item' => 'カスタム投稿を編集', 'new_item' => '新しいカスタム投稿', 'view_item' => 'カスタム投稿を表示', 'search_items' => 'カスタム投稿を探す', 'not_found' => 'カスタム投稿はありません', 'not_found_in_trash' => 'ゴミ箱にカスタム投稿はありません', 'parent_item_colon' => '' ), 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'hierarchical' => false, 'menu_position' => 5, 'has_archive' => true, 'supports' => array('title','editor','post-formats','thumbnail'), // <= 'post-formats'を消す 'taxonomies' => array('taxonomys'), 'rewrite' => array( 'slug' => '', 'with_front' => true, 'feeds' => true, 'pages' => true ) ));
カスタム投稿で投稿フォーマットを有効にするとプレビューが見れないなんて、なんか腑に落ちないよ~
とりあえず、これを追記すれば直るかも
投稿フォーマットを使いたい場合は、function.phpに次のコードを追記します。
プレビューURLから投稿フォーマットのパラメータを削除する「おまじない」です。
function post_format_parameter( $url ) { $url = remove_query_arg( 'post_format', $url ); return $url; } add_filter( 'preview_post_link', 'post_format_parameter', 9999 );
こちらのサイトを参考にさせていただきました。
https://www.webantena.net/wordpress/preview-post-link-remove-post-format/
とりあえず、この“おまじない”をコピペしときゃOKやで