WordPress : Comment bloquer la page de liste de type de publication personnalisée dans WordPress ?

Publié par Jean-Michel le

Je travaille sur un site WordPress et j’ai un problème avec la fonctionnalité de type de message personnalisé. J’ai créé un type de publication avec le nom « cust_team » et le permalien est défini sur Post Name :

Nom du message : http://example.com/mytheme/sample-post/

Maintenant, lorsque je consulte la page « http://example.com/mytheme/cust_team », une liste de tous les messages « cust_team » s’affiche. Mais lorsque je regarde http://example.com/mytheme/post ou la page, il redirige vers la page 404. Je veux juste bloquer la page de liste de type de publication personnalisée, car elle crée un problème de contenu en double dans le référencement.

Voici mon tableau de type de publication de registre ::

$cpt_args['cust_team'] = array(
    'labels' => array(
        'name'              => esc_html__('Team Member','mytheme'),
        'singular_name'     => esc_html__('Team Member','mytheme'),
        'add_new'           => esc_html__('Add Team Member','mytheme'),
        'add_new_item'      => esc_html__('Add Team Member','mytheme'),
        'edit_item'         => esc_html__('Edit Team Member','mytheme'),
        'new_item'          => esc_html__('New Team Member','mytheme'),
        'all_items'       => esc_html__( 'All Team Members','mytheme'),
        'not_found'         => esc_html__('No Team Member found','mytheme'),
        'not_found_in_trash'    => esc_html__('No Team Member found in Trash','mytheme'),
        'menu_name'                 => esc_html__('Team Members','mytheme'),
    ),
    'description'       => 'Manage Team Content.',
    'public'                => true,
    'publicly_queryable' => true,
    'show_in_nav_menus'     => true,
    'supports'              => array(
    'title',
    'thumbnail',
    'editor',
    'page-attributes',
    'custom-fields'
    ),
    'show_ui'               => true,
    'show_in_menu'      => true,
    'menu_position'         => 5,
    'has_archive'           => true,
    'menu_icon'             => 'dashicons-admin-post',
    'query_var'             => true,
    'rewrite'               => '',
    'capability_type'   => 'post',
    'map_meta_cap'          => true,
    'rewrite'               => array('slug'  => 'cust_team'),
);

S’il vous plaît dites-moi ce que je fais mal ici. Je souhaite supprimer la page de liste de types de publication personnalisée comme le font les types de publication par défaut « post » et « page ».

Solution n°1 trouvée

Définissez ce qui suit sur false :

'has_archive' => false

Vous pouvez en savoir plus sur les types de publication dans la documentation WordPress

Solution n°2 trouvée

Veuillez définir 'has_archive' => falseet 'rewrite' => false.

a_archive

(booléen ou chaîne) (facultatif) Active les archives de type post. Utilisera $post_type comme slug d’archive par défaut. Par défaut : faux

Remarque : générera les règles de réécriture appropriées si la réécriture est activée. Utilisez également la réécriture pour changer le slug utilisé. S’il s’agit d’une chaîne, elle doit pouvoir être traduite.

récrire

(booléen ou tableau) (facultatif)

Déclenche la gestion des réécritures pour ce type de publication. Pour empêcher les réécritures, définissez sur false.

Par défaut : true et utilisez $post_type comme slug

Noter:

Si vous enregistrez un type de publication dans un plugin, appelez flush_rewrite_rules() dans votre crochet d’activation et de désactivation (voir Flushing Rewrite on Activation ci-dessous). Si flush_rewrite_rules() n’est pas utilisé, vous devrez alors accéder manuellement à Paramètres > Permaliens et actualiser votre structure de permaliens avant que votre type de message personnalisé n’affiche la structure correcte.

J’espère que cela vous aidera.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *