カスタム投稿のプレビューが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やで





