質問: カスタム投稿タイプのシングルビューを無効にする方法 カスタム投稿タイプを作成しました。register_post_type('sample_post_type',array( 'labels' => array( 'name' => _x('sample posts', 'post type general name'), 'singular_name' => _x('sample post', 'post type singular name') ), 'public' => true, 'show_in_nav_menus' => false, 'exclude_from_search' => true )); この特定の投稿タイプの単一投稿ビューを無効にする方法単純な404を表示するのは問題ありません、またはホームページにリダイレクトします。これはプラグインの中なので、空のページを設定するためのsingle-sample_post_type.phpファイルを作成することはできません。
回答: svenの本当に良い答えから作業して、私はifステートメントでin_array()を使って複数の投稿タイプを追加し、そしてホームページの代わりにアーカイブページにリダイレクトすることをより簡単にするために彼の機能を書き直しました。(ところで、query_varやpublically_queryableをfalseに設定すると、単一のビューだけでなくネイティブのアーカイブビューも無効になり、'has_archive' => trueをオーバーライドすることになります。その場合でも、カスタムwp_queryを設定して独自のアーカイブを作成できます。ページでは、テンプレートで、しかし、メインのクエリはそれ以上それをしないでしょう、それ?function fq_disable_single_cpt_views() { $queried_post_type = get_query_var('post_type'); $cpts_without_single_views = array( 'my-post-type', 'my-other-post-type' ); if ( is_single() && in_array( $queried_post_type, $cpts_without_single_views ) ) { wp_redirect( home_url( '/' . $queried_post_type . '/' ), 301 ); exit; } } add_action( 'template_redirect', 'fq_disable_single_cpt_views' );