Tipo de publicación personalizada taxonomía "etiqueta": no se encuentran publicaciones

28 jul 2013, 03:35:54
Vistas: 8.06K
Votos: 8

He registrado un tipo de publicación personalizada "objeto" y registré la taxonomía "post_tag" para que estos objetos puedan ser etiquetados.

register_taxonomy_for_object_type('post_tag', 'object');

Cuando visito domain.com/tag/{objeto-slug} no encuentra ninguna publicación, aunque existen.

Aquí está cómo declaré mi CPT:

register_post_type( 'objet', 
        array('labels' => array(/* eliminado para mayor claridad */),
            'description' => __( 'blabla' ), 
            'public' => true,
            'publicly_queryable' => true,
            'exclude_from_search' => false,
            'show_ui' => true,
            'query_var' => true,
            'menu_position' => 3, 
            'menu_icon' => get_stylesheet_directory_uri() . '/library/images/custom-post-icon.png', 
            'rewrite'   => array( 'slug' => 'stock', 'with_front' => false ), 
            'has_archive' => 'stock',
            'capability_type' => 'post',
            'taxonomies' => array('post_tag'),
            'hierarchical' => false,
            'supports' => array( 'title', 'editor', 'thumbnail', 'revisions', 'sticky')
        ) 
    );
1
Comentarios

Parece que falta algo de código para agregar add_action y comenzar el tipo de publicación en el código anterior. ¿También sería posible que publiques el código de registro de la taxonomía y la versión actualizada del tipo de publicación aquí juntos?

sulfureous sulfureous
28 jul 2013 04:45:07
Todas las respuestas a la pregunta 1
2
23

Las consultas de archivo de Etiquetas y Categorías por defecto solo consultan el tipo de publicación post. Para añadir tu tipo de publicación personalizado a esas consultas, puedes usar la acción pre_get_posts:

function wpa_cpt_tags( $query ) {
    if ( $query->is_tag() && $query->is_main_query() ) {
        $query->set( 'post_type', array( 'post', 'object' ) );
    }
}
add_action( 'pre_get_posts', 'wpa_cpt_tags' );
28 jul 2013 03:51:47
Comentarios

Gracias. Y para incluir categorías en la misma función como necesitaba, la condición debería ser: if( ($query->is_tag() || $query->is_category()) && $query->is_main_query() ){}

Jonny Perl Jonny Perl
6 oct 2016 19:44:49

Para cualquiera que vea esto, parece que los slugs dentro del array en el código proporcionado representan cada tipo de post que se incluirá en el archivo. Por lo tanto, si deseas incluir tu tipo de post en el archivo, simplemente necesitas agregar el slug al array.

Squagem Squagem
18 abr 2017 22:07:39