web-dev-qa-db-fra.com

Plusieurs types d'articles dans les archives (filtre?)

J'essaie de faire en sorte que tous les types de publication personnalisés apparaissent dans mes sections d'archives sur un site, y compris les archives de l'auteur mensuelles, balisées. Pour le moment, j'ai pensé à quelque chose comme:

add_filter('pre_get_posts', 'sw_custom_post_type_includes');

function sw_custom_post_type_includes($query) {

        $post_type = array('post','custom1','custom2','custom3');

        $query->set('post_type',$post_type);

        return $query;

}

Mais je ne veux pas utiliser pre_get_posts, car cela gâche toutes les requêtes. Existe-t-il un filtre pour pre_get_archives? Impossible de trouver une solution sur Google.

2
Michael Watson

Essaye ça:

function sw_custom_post_type_includes($query) {
        $post_types = array('post','custom1','custom2','custom3');
        if ( ! is_archive() && ! in_array( get_post_type(), $post_types ) )
                return $query;

        $query->set( 'post_type', $post_types );

        return $query;
}
add_filter('pre_get_posts', 'sw_custom_post_type_includes');
3
kaiser