Come posso usare WP_Query per escludere un tag specifico?

13 giu 2015, 20:25:55
Visualizzazioni: 13.5K
Voti: 4

Ho il seguente codice funzionante per una query su una categoria specifica e uno slug di tag:

$args = array(
'category_name' => $cat_name,  // Nome della categoria
'tag' => $tag_name,           // Slug del tag
'post__not_in' => $sticky     // Array di ID post da escludere
 );

 $my_query = new WP_Query( $args );

Non riesco a capire come escludere un nome di tag specifico dalla query. Ho bisogno dell'ID del tag? Come lo ottengo? Grazie in anticipo.

1
Commenti

Vorrei far notare che le performance di ricerche come post__not_in non scalano molto bene su siti più grandi

Tom J Nowell Tom J Nowell
13 giu 2015 20:35:35
Tutte le risposte alla domanda 2
0

Utilizza il parametro tag__not_in. Devi utilizzare l'ID del tag per questo parametro

$args = array(
    'category_name' => $cat_name,
    'tag' => $tag_name,
    'post__not_in' => $sticky,
    'tag__not_in' => array($tag_id_1, $tag_id_2)
);

$my_query = new WP_Query( $args );
13 giu 2015 20:29:27
4

Devi utilizzare 'tag__not_in' e hai bisogno dell'ID del Tag. Dai un'occhiata a https://codex.wordpress.org/Function_Reference/get_term_by per recuperare l'oggetto term, che contiene l'ID.

13 giu 2015 20:29:39
Commenti

Grazie per la tua risposta. Non capisco come ottenere l'ID del tag da questa funzione:

user45758 user45758
14 giu 2015 00:07:58

$tag = get_term_by('name', 'my-sticky', 'post_tag'); echo 'l\'id del termine è '. $tag;

user45758 user45758
14 giu 2015 00:11:09

echo 'l\'id del termine è ' . (int) $tag->term_id;

websupporter websupporter
14 giu 2015 00:30:13

Sto ottenendo un term_id pari a 0. Potrebbe essere corretto? Come posso verificarlo?

user45758 user45758
14 giu 2015 16:06:27