Cum să obții articolele unui termen de taxonomie personalizată

29 iun. 2015, 21:45:38
Vizualizări: 20.3K
Voturi: 9

Sper că cineva mă va ajuta:

Am un Tip de Articol Personalizat (Film) cu propria sa taxonomie personalizată (Producător), această taxonomie are propriii termeni, de exemplu 'WarnerBros'.

Cum pot obține toate articolele pentru termenul meu (WarnerBros)?

Am următorul cod, dar încă nu funcționează.

$args = array(
   'post_type' => 'movie',
    'tax_query' => array(
        array(
            'taxonomy' => 'producer',
            'field'    => 'slug',
            'terms'    => 'WarnerBros',
        ),
    ),
);
$query = new WP_Query( $args );

După ce m-am jucat cu codul am rezolvat problema, voi împărtăși codul meu pentru cineva cu aceeași problemă:

 
$type = 'Movie';  // Numele Tipului de Articol Personalizat
$tag =  'WarnerBros'; // Termenul Tău

$args = array( 'post_type' => $type, 'paged' => $paged, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC', 'tax_query'=>array( array( 'taxonomy'=>'Producer', //Numele Taxonomiei 'field'=>'slug', 'terms'=>array($tag) )) );

$loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); if(is_object_in_term($post->ID,'Taxonomy_Name','Your_Term')) // Producer și WarnerBros {

echo '<div id="YourID">'; echo the_title(); echo '</div>'; } endwhile;

3
Comentarii

Am încercat cu multe exemple, dar nimic nu funcționează.

Ebenizer Pinedo Ebenizer Pinedo
29 iun. 2015 22:19:44

Te rog să nu postezi blocuri de cod în comentarii, în schimb apasă "edit" la întrebarea ta și apoi apasă {} pentru a introduce codul într-un mod formatat. Astfel este mai ușor pentru utilizatori să vadă ce ai încercat și poate îl pot modifica pentru a-ți rezolva problema!

Howdy_McGee Howdy_McGee
29 iun. 2015 22:21:39

Scuze, acum este corectat ;)

Ebenizer Pinedo Ebenizer Pinedo
29 iun. 2015 22:25:30
Toate răspunsurile la întrebare 3
2

Această întrebare are răspunsuri diferite în această problemă specifică WordPress, care vă pot fi de ajutor:

Afișați toate articolele dintr-un tip personalizat de postare, grupate după o taxonomie personalizată

Personal, am folosit această metodă care a funcționat perfect pentru mine:

$terms = get_terms('tax_name');
$posts = array();
foreach ( $terms as $term ) {
    $posts[$term->name] = get_posts(array( 'posts_per_page' => -1, 'post_type' => 'post_type', 'tax_name' => $term->name ));
}

Adaptând-o la scenariul dumneavoastră, acest cod ar trebui să funcționeze:

$terms = get_terms('producer');
$posts = array();
foreach ( $terms as $term ) {
    $posts[$term->name] = get_posts(array( 'posts_per_page' => -1, 'post_type' => 'movie', 'tax_name' => $term->name ));
}

Acum puteți obține articolele dumneavoastră:

print_r($posts["WarnerBros"]);
29 iun. 2015 22:30:37
Comentarii

Nu funcționează pentru mine, poate pentru că fragmentul de cod nu conține numele termenului.

Ebenizer Pinedo Ebenizer Pinedo
29 iun. 2015 23:03:54

Am editat răspunsul pentru a se potrivi cu variabilele tale. Nu te aștepta ca răspunsurile să aibă exact aceleași variabile ca ale tale.

marcovega marcovega
29 iun. 2015 23:07:44
1

Încearcă așa

$args = array(
    'post_type' => 'movie',
    'tax_query' => array(
        array(
            'taxonomy' => 'producer', // taxonomia producător
            'field'    => 'slug',     // câmpul pentru căutare
            'terms'    => 'WarnerBros', // termenul de căutat
        ),
    ),
);
$query = new WP_Query( $args ); // inițializarea interogării

Vezi mai multe pe WordPress Codex

29 iun. 2015 22:01:11
Comentarii

Se pare că nu funcționează, ar trebui să folosesc slug-ul termenului meu? Sau poate să apelez altă funcție precum: <?php (have_posts()) : the_post(); ?>

Ebenizer Pinedo Ebenizer Pinedo
29 iun. 2015 22:18:17
0

Să presupunem că aveți un tip de postare personalizată plays și sub taxonomia genre doriți să găsiți toate postările din categoria comedy

$args = array(
        'post_type' => 'plays', /*Tipul de postare (plays)*/
        'tax_query' => array(
            array(
                'taxonomy' => 'genre', /*Taxonomia pentru căutare (genre)*/
                'field'    => 'slug',
                'terms'    => 'comedy', /*Căutare categorie pentru (comedy)*/
            ),
        ),
    );
    $query = new WP_Query( $args );
19 nov. 2017 18:11:04