2019.10.3
WordPressで投稿をカテゴリーで絞り込もうとすると出ることがある「無効な投稿形式」の文言。文言が出ずにPHPエラーでedit.phpにエラーが有るよ、と出たり投稿がありません、と出る場合の対処方法です。
これが出る前提としてカスタム投稿タイプにカテゴリーを振り分けるカスタマイズを入れていたり、固定ページにカテゴリーをつけるカスタマイズをしている場合に起きがちです。
例えば以下のコードは固定ページに投稿と同じカテゴリーをつけるカスタマイズです。
add_action('init','add_categories_for_pages');
function add_categories_for_pages(){
register_taxonomy_for_object_type('category', 'page');
}
add_action( 'pre_get_posts', 'nobita_merge_page_categories_at_category_archive' );
function nobita_merge_page_categories_at_category_archive( $query ) {
if ( $query->is_category== true && $query->is_main_query() ) {
$query->set('post_type', array( 'post', 'page', 'nav_menu_item'));
}
}
これだとエラーが出ますんで、
if ( ! is_admin() ) {//無効な投稿~ が出るのを消す
add_action('init','add_categories_for_pages');
function add_categories_for_pages(){
register_taxonomy_for_object_type('category', 'page');
}
add_action( 'pre_get_posts', 'nobita_merge_page_categories_at_category_archive' );
function nobita_merge_page_categories_at_category_archive( $query ) {
if ( $query->is_category== true && $query->is_main_query() ) {
$query->set('post_type', array( 'post', 'page', 'nav_menu_item'));
}
}
}//ここまで
こうすることで解消します。
if ( ! is_admin() ) {
}
このコードで問題箇所をくくってみると良いでしょう。