Tassonomia Personalizzata con tax_query

2 ago 2013, 02:30:32
Visualizzazioni: 19.9K
Voti: 0

Ho creato un tipo di tassonomia personalizzata con un plugin (CMS Press) e ora sto cercando di ottenere tutti i post con i termini della tassonomia in quella tassonomia.

Il mio get_posts appare così:

$args = Array( 
    'numberposts' => 5, 
    'offset' => 0,
    'post_status' => 'publish',
    'content-type' => 'my-term'
);

get_posts($args);

Ho anche provato:

$args = Array( 
    'numberposts' => 5, 
    'offset' => 0,
    'post_status' => 'publish',
    'tax_query' => Array( Array ( 
        'taxonomy' => 'content-type' 
        'field' => 'slug' 
        'terms' => 'my-term' 
    ));

get_posts($args);

Questo funziona bene quando non sto usando una tassonomia personalizzata. Se cambio la mia richiesta in:

$args = Array( 
    'numberposts' => 5, 
    'offset' => 0,
    'post_status' => 'publish',
    'tax_query' => Array( Array ( 
        'taxonomy' => 'post_tags' 
        'field' => 'slug' 
        'terms' => 'some-tag' 
    ));

get_posts($args);

funziona.

Mi chiedevo se sto tralasciando qualcosa che impedisce l'interrogazione delle tassonomie personalizzate. Qualsiasi aiuto sarebbe apprezzato.

4
Commenti

Ciao Matt, non sono familiare con la versione di riempimento di un array che mostri qui. Tutti i metodi che ho visto usano una sintassi come $args = array( 'numberposts' = -1, 'post_status' = 'publish' ); ecc. Nel caso possa aiutare. Puoi riempire un array $arg['numberposts'] = -1 ma di nuovo è diverso da quello che mostri. Vedi php.net per maggiori informazioni.

Jon Jon
2 ago 2013 03:16:45

prima, presumo che tu stia effettivamente chiamando get_posts (plurale) e che get_post sia solo un errore di battitura, inoltre post_tags (la tassonomia integrata è al singolare, post_tag). A scopo di debug suggerisco di usare WP_Query invece di get_posts, così puoi fare var_dump dell'oggetto query per vedere la query effettiva generata e inviata al database.

Milo Milo
2 ago 2013 03:44:36

Scusa, stavo formattando basandomi su qualche output di debug. Ti assicuro che nel codice effettivo sto usando la sintassi dell'array (e get_posts) correttamente. Modificherò per riflettere questo.

Matt Dunnam Matt Dunnam
2 ago 2013 03:50:24

Dovrebbe funzionare normalmente... Giusto per sicurezza, la tassonomia personalizzata è applicata ai normali post, giusto?

Gioia Fueter Gioia Fueter
26 giu 2014 00:43:10
Tutte le risposte alla domanda 2
2

Dal WordPress codex per wp_query:

Mostra i post taggati con bob, sotto la tassonomia personalizzata 'people':

$args = array(
    'post_type' => 'post',
    'people' => 'bob'
);
$query = new WP_Query( $args );

Mostra i post taggati con bob, sotto la tassonomia personalizzata 'people', utilizzando tax_query:

$args = array(
    'post_type' => 'post',
    'tax_query' => array(
        array(
            'taxonomy' => 'people',
            'field' => 'slug',
            'terms' => 'bob'
        )
    )
);
$query = new WP_Query( $args );

Vedi la pagina del Codex per ulteriori esempi.

2 ago 2013 03:35:00
Commenti

Questo è quello che abbiamo provato. Non ha funzionato (si prega di vedere sopra).

Matt Dunnam Matt Dunnam
2 ago 2013 04:37:28

Per me funziona.

herrfischer herrfischer
22 nov 2016 19:55:44
0

La causa più probabile di questo problema è l'uso di trattini (-) nel nome della tua tassonomia personalizzata. I trattini sono estremamente problematici quando utilizzati nei nomi delle tassonomie personalizzate, quindi per regola dovrebbero essere evitati a tutti i costi.

Se hai bisogno di separare i nomi in una tassonomia personalizzata, o anche in un nome di post type personalizzato, dovresti usare esclusivamente underscore (_). Evita anche l'uso di camelcase, numeri come primo carattere e qualsiasi tipo di carattere speciale.

9 set 2014 16:10:55