web-dev-qa-db-fra.com

Comment pouvons-nous désactiver une page d'archive de type publication personnalisée tout en permettant son flux?

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?

1
saeed shabani

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 );
0
saeed shabani

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...
);
4
Milo