Pour désactiver une page d'archive de types de publications personnalisée, nous devrions utiliser le code suivant:
$args = array(
'has_archive' => false,
);
Mais lorsque nous utilisons false
pour has_archive
, la page de flux (comme: name.com/books/feed
) de ce type de publication personnalisée est également désactivée. Maintenant, je veux savoir comment je peux désactiver la page d'archivage de types de publications personnalisées tout en maintenant le flux actif?
Enfin, j'ai trouvé une solution pour cela. Je règle has_archive
à true
. Le flux et la page d'archive de CPT sont maintenant actifs. Pour désactiver uniquement la page d'archive de CPT, j'utilise le filtre suivant dans le fichier 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 );
Définissez l’argument feeds
de rewrite
sur true
pour générer des règles de réécriture de flux. La valeur par défaut de ce que has_archive
est défini sur si rien n'est explicitement passé.
$args = array(
'has_archive' => false,
'rewrite' => array(
'feeds' => true
),
// your other args...
);