Excluir una categoría de WP_Query
He estado rompiendo mi cabeza durante los últimos días tratando de excluir una categoría de un archivo de Easy Digital Downloads, que estoy mostrando en un widget personalizado, sin embargo, no puedo ocultar una categoría llamada 'custom-project' sin importar lo que intente.
Este es el código que estoy tratando de usar, basado en las instrucciones de https://codex.wordpress.org/Class_Reference/WP_Query
$argsQuery = array(
'posts_per_page' => 3,
'post_type' => 'download',
'tax_query' => array(
array(
'taxonomy' => 'download_category',
'field' => 'slug',
'terms' => 'custom-project',
'include_children' => true,
'operator' => 'NOT_IN'
)
),
);
$get_latest_downloads = new WP_Query( $argsQuery );
$i=1;
while ( $get_latest_downloads->have_posts() ) : $get_latest_downloads->the_post();
//CÓDIGO DEL CUERPO DEL WIDGET
$i++;
endwhile;
También intenté usar 'cat' en lugar de 'tax_query', pero sin éxito ya que la categoría 'custom-project' sigue mostrándose dentro del bucle de entradas.
$argsQuery = array(
'posts_per_page' => 3,
'post_type' => 'download',
'cat' => '-5',
);
$get_latest_downloads = new WP_Query( $argsQuery );
$i=1;
while ( $get_latest_downloads->have_posts() ) : $get_latest_downloads->the_post();
//CÓDIGO DEL CUERPO DEL WIDGET
$i++;
endwhile;
Estoy seguro de que el nombre del slug y el ID de la categoría son correctos. Cualquier tipo de ayuda es muy apreciada.
Problema 1
En tu consulta de taxonomía, deberías usar NOT IN
en lugar de NOT_IN
. Eso está evitando que tu consulta de taxonomía funcione (asumiendo que los demás campos son correctos).
Problema 2
En los argumentos para WP_Query()
, deberías usar category__not_in
en lugar de cat
. Por lo tanto, cambia tu código a:
$argsQuery = array(
'posts_per_page' => 3,
'post_type' => 'download',
'category__not_in' => 5 ,
);

https://codex.wordpress.org/Class_Reference/WP_Query
category__not_in (array) - utiliza el ID de la categoría.
$argsQuery = array(
'posts_per_page' => 3,
'post_type' => 'download',
'category__not_in' => array( 5 ), // array, no una cadena
);
