Posts de consulta com taxonomia personalizada de um tipo de postagem personalizado

Eu tenho batido minha cabeça contra minha mesa sobre isso durante o último dia ou mais … Eu criei um tipo de postagem personalizado chamado ‘anúncio’ e uma taxonomia personalizada dentro desse tipo de publicação chamado ‘grupo’. Eu criei um monte de posts diferentes e atribuí-los aos vários grupos que criei, mas o problema é quando eu tento consultar as postagens para minha taxonomia personalizada, ela aparece vazia.

Quando eu tento consultar uma postagem regular com a categoria padrão, ela funciona bem, então eu estou começando a pensar que tem algo a ver com a maneira como eu configurei minhas taxonomias. Eu já tentei redefinir permalinks, mas sem sorte.

Aqui está o que eu tenho até agora:

Se alguém pudesse lançar alguma luz sobre onde eu poderia ter errado, isso seria maravilhoso.

Obrigado!

/*-----------------------------------------------------------------------------------*/ /* Initialize the post type /*-----------------------------------------------------------------------------------*/ /** * Custom Post Type: Advertisements * * @package WordPress * @subpackage ExportWise */ /* Register custom taxonomies on the 'init' hook. */ add_action( 'init', 'register_taxonomy_groups' ); function register_taxonomy_groups() { $labels = array( 'name' => __( 'Groups', 'bd' ), 'singular_name' => __( 'Group', 'bd' ), 'search_items' => __( 'Search Groups', 'bd' ), 'popular_items' => __( 'Popular Groups', 'bd' ), 'all_items' => __( 'All Groups', 'bd' ), 'parent_item' => __( 'Parent Group', 'bd' ), 'parent_item_colon' => __( 'Parent Group:', 'bd' ), 'edit_item' => __( 'Edit Group', 'bd' ), 'update_item' => __( 'Update Group', 'bd' ), 'add_new_item' => __( 'Add New Group', 'bd' ), 'new_item_name' => __( 'New Group', 'bd' ), 'separate_items_with_commas' => __( 'Separate groups with commas', 'bd' ), 'add_or_remove_items' => __( 'Add or remove groups', 'bd' ), 'choose_from_most_used' => __( 'Choose from the most used groups', 'bd' ), 'menu_name' => __( 'Groups', 'bd' ), ); $args = array( 'labels' => $labels, 'public' => true, 'show_in_nav_menus' => false, 'show_ui' => true, 'show_tagcloud' => false, 'show_admin_column' => true, 'hierarchical' => true, 'rewrite' => true, 'query_var' => true ); register_taxonomy( 'group', array('advertisement'), $args ); } /* Register custom post types on the 'init' hook. */ add_action( 'init', 'my_register_post_types', 20 ); /** * Registers post types. * * @since 0.1.0 * @access public * @return void */ function my_register_post_types() { /* Set up the arguments for the post type. */ $args = array( 'public' => true, 'publicly_queryable' => true, 'exclude_from_search' => true, 'show_in_nav_menus' => false, 'show_ui' => true, 'show_in_menu' => true, 'show_in_admin_bar' => true, 'menu_position' => 20, 'menu_icon' => 'dashicons-chart-line', 'can_export' => true, 'delete_with_user' => false, 'hierarchical' => true, 'has_archive' => false, 'query_var' => true, 'rewrite' => array( 'with_front' => false, 'pages' => true, 'feeds' => true, ), 'supports' => array( 'title' ), 'taxonomies' => array( 'group' ), 'labels' => array( 'name' => __( 'Advertisements', 'bd' ), 'singular_name' => __( 'Advertisement', 'bd' ), 'menu_name' => __( 'Advertisements', 'bd' ), 'name_admin_bar' => __( 'Advertisements', 'bd' ), 'add_new' => __( 'Add New', 'bd' ), 'add_new_item' => __( 'Add New Advertisement', 'bd' ), 'edit_item' => __( 'Edit Advertisement', 'bd' ), 'new_item' => __( 'New Advertisement', 'bd' ), 'view_item' => __( 'View Advertisement', 'bd' ), 'search_items' => __( 'Search Advertisements', 'bd' ), 'not_found' => __( 'No advertisements found', 'bd' ), 'not_found_in_trash' => __( 'No advertisements found in trash', 'bd' ), 'all_items' => __( 'All Advertisements', 'bd' ), 'parent_item' => __( 'Parent Advertisement', 'bd' ), 'parent_item_colon' => __( 'Parent Advertisement:', 'bd' ), ) ); /* Register the post type. */ register_post_type( 'advertisement', $args ); } /*-----------------------------------------------------------------------------------*/ /* Add custom taxonomies to the post type /*-----------------------------------------------------------------------------------*/ function create_my_taxonomies() { register_taxonomy( 'group', 'advertisement', array( 'labels' => array( 'name' => 'Groups', 'add_new_item' => 'Add New Group', 'new_item_name' => "New Group" ), 'show_ui' => true, 'show_tagcloud' => false, 'hierarchical' => true, 'public' => true ) ); } add_action( 'init', 'create_my_taxonomies', 0 ); /*-----------------------------------------------------------------------------------*/ /* Query the CPT for Posts from a specific custom taxonomy /*-----------------------------------------------------------------------------------*/ // If on an Article, display random advertisements if ( is_single() ) { $posts_per_page = 1; $orderby = 'rand'; // Otherwise display the latest advertisement } else { $posts_per_page = 1; $orderby = 'date'; } $args = array( 'post_type' => 'advertisement', 'tax_query' => array( array( 'taxonomy' => 'group', 'terms' => array( 'homepage' ), 'field' => 'slug', ), ), 'posts_per_page' => $posts_per_page, 'orderby' => $orderby, ); $query_advertisements = new WP_Query( $args ); //echo $query_advertisements->request; ?> have_posts() ) : ?> 
have_posts() ) : $query_advertisements->the_post(); $adv_image = getUploadedImageSrc(); $adv_url = get_post_meta( get_the_ID(), 'adv_url', true ); echo '' . get_the_title() . ''; endwhile; wp_reset_postdata(); ?>

Error retrieving advertisements! Please try again later.

Solutions Collecting From Web of "Posts de consulta com taxonomia personalizada de um tipo de postagem personalizado"

Parece que você esqueceu de definir o parâmetro de field para procurar slugs :

 $args = array( 'post_type' => 'advertisement', 'tax_query' => array( array( 'taxonomy' => 'group', 'terms' => array( 'homepage' ), 'field' => 'slug', ) ) ); 

Observe que a consulta de taxonomia usa o term_id como o campo de pesquisa padrão.

Eu também usaria outra variável do que $wp_query para armazenar o resultado da consulta secundária.

Espero que isso resolva o seu problema 😉