カスタム投稿タイプのアーカイブページを無効にするには、次のコードを使用します。
$args = array(
'has_archive' => false,
);
しかしhas_archive
にfalse
を使用すると、そのカスタム投稿タイプのフィードページ(name.com/books/feed
など)も無効になります。カスタム投稿タイプのアーカイブページを無効にしてフィードをアクティブにしておく方法を知りたいですか。
最後に私はそれに対する解決策を見つけました。 has_archive
をtrue
に設定します。これで、CPTのフィードとアーカイブページの両方がアクティブになりました。 CPTのアーカイブページのみを無効にするには、functions.php
ファイルで次のフィルタを使用します。
function AryanThemes_disable_cpt_archive_template(){
if ( is_post_type_archive('cpt') ) {
global $wp_query;
$wp_query->set_404();
status_header( 404 );
get_template_part( 404 ); exit();
}
}
add_filter( 'archive_template', 'AryanThemes_disable_cpt_archive_template', -1 );
フィードの書き換えルールを生成するには、feeds
のrewrite
引数をtrue
に設定します。何も明示的に渡されない場合、デフォルトはhas_archive
が設定されているものになります。
$args = array(
'has_archive' => false,
'rewrite' => array(
'feeds' => true
),
// your other args...
);