web-dev-qa-db-fra.com

Balise de page avec des types de publication personnalisés ne renvoyant aucune publication

J'ai créé un certain nombre de types de publication personnalisés, mais lorsque je visite la page "balise" qui devrait répertorier ces types de publication personnalisés, elle n'a aucune publication à afficher.

J'ai créé mes types de messages personnalisés comme ceci:

$news_attr = array(
    'name' => 'News',
    'singluar_name' => 'News Article',
    'add_new' => 'Add News Article',
    'all_items' => 'All News Articles',
    'add_new_item' => 'Add News Article',
    'edit_item' => 'Edit News Article',
    'new_item' => 'New News Article',
    'view_item' => 'View News Article',
    'search_item' => 'Search News Articles',
    'not_found' => 'No Podcast found',
    'not_found_trash' => 'No Podcast found in Trash',
    'parent_item_colon' => 'Parent Item'
);

$news_args = array(
    'labels' => $news_attr,
    'public' => true,
    'has_archive' => true,
    'publicly_queryable' => true,
    'query_var' => true,
    'capability_type' => 'post',
    'heirarchical' => 'false',
    'supports' => array(
        'thumbnail',
        'post-thumbnails',
        'title',
        'editor',
        'excerpt',
        'revisions',
        'custom-fields',
        'author'
    ),
    'taxonomies' => array('category', 'post_tag'),
    'menu_position' => 4,
    'exclude_from_search' => false,
    'rewrite' => array('slug' => 'news-archive'),
    'menu_icon'   => 'dashicons-welcome-widgets-menus'
);

Si je visite /tag/blog-articles/, il répertorie tous les types de publications standards, mais aucun des types personnalisés. Comment pourrais-je m'assurer que les post-types personnalisés sont inclus dans cela?

1
Ben Walters

WordPress, par défaut, affiche uniquement les publications sur les archives de tags et de catégories ... Donc, si vous souhaitez afficher votre type de publication personnalisée, vous devrez faire en sorte que WordPress le fasse ...

function add_news_articles_to_categories_and_tags( $query ) {
    if ( ! is_admin() && $query->is_main_query() && ($query->is_category || $query->is_tax ) ) {
        $query->set( 'post_type', array('post', 'news_article') ); // use your CPT slugs in here
    }
}
add_action( 'pre_get_posts', 'add_news_articles_to_categories_and_tags' );
1
Krzysiek Dróżdż