Não consigo obter tax_query em get_posts () para trabalhar com taxonomia personalizada

Eu tenho tentado alcançar isso nos últimos dois dias, mas nada funciona. Estou tentando criar funcionalidades para pesquisar qualquer postagem, página e alguns outros post-tipos personalizados por uma tag. Criei um plugin que registra uma taxonomia chamada search_tag.

search-tags.php

require_once __DIR__ . '/includes/search-tags.class.php'; function search_tags_closure() { $search_tags = new Search_Tags; $search_tags->create_taxonomy(); } add_action('init', 'search_tags_closure'); 

search-tags.class.php

 class Search_Tags { const NAME = 'search_tag'; const LABEL = 'Search Tags'; protected function get_post_types() { $args = [ 'public' => 'true', 'publicly_queryable' => 'true', ]; $post_types = get_post_types($args, 'names'); $post_types['page'] = 'page'; unset($post_types['attachment']); return array_keys($post_types); } protected function is_custom_post_type($name) { $built_in_post_types = [ 'post', 'page', ]; if (in_array($name, $built_in_post_types)) return false; return true; } public function create_taxonomy() { $name = $this::LABEL; $labels = [ 'name' => $name, 'menu_name' => $name, 'singular_name' => 'Search Tag', 'all_items' => "All $name", 'edit_item' => "Edit $name", 'view_item' => "View $name", 'update_item' => "Update $name", 'add_new_item' => "Add New $name", 'new_item_name' => "New $name", 'search_items' => "Find $name", 'add_or_remove_items' => "Add or remove $name", ]; $args = [ 'labels' => $labels, 'show_in_nav_menu' => false, ]; register_taxonomy($this::NAME, $this->get_post_types(), $args); foreach ($this->get_post_types() as $post_type) { register_taxonomy_for_object_type($this::NAME, $post_type); } } } 

Tudo acima funciona bem. A taxonomia está registrada e adicionei tags a uma página.

Abaixo está o código que eu tenho para consultar páginas pela taxonomia search_tag. Eu tenho codificado um valor para os termos tax_query temporariamente para testá-lo. Tenho certeza de que o termo e a taxonomia existem, pois eles são mostrados quando eu listo o termo e a taxonomia usando a WI CLI.

functions.php

 function testing() { $args = [ 'post_type' => [ 'post', 'page', 'product', 'distribution_centre', ], 'numberposts' => -1, 'post_status' => 'publish', 'tax_query' => [ [ 'taxonomy' => 'search_tag', 'field' => 'name', 'terms' => 'Nothing', ] ] ]; return get_posts($args); } var_dump(testing()); 

Solutions Collecting From Web of "Não consigo obter tax_query em get_posts () para trabalhar com taxonomia personalizada"

O seu tipo de postagem personalizado tem a configuração publically_queryable = true?

Verifique o tipo de publicação na consulta resultante para ver se ele corresponde ao seu tipo de publicação. Eu acho que o seu tipo de publicação ‘distribution_centre’ não está sendo consultado por um motivo ou outro.

 add_filter( 'posts_request', 'dump_request' );//show the query function dump_request( $query ) { echo "
"; var_dump( $query ); echo "

"; return $query; }