Cum să obții toate taxonomiile și toți termenii pentru fiecare taxonomie cu numărul de postări zero

4 iul. 2012, 01:05:38
Vizualizări: 16.4K
Voturi: 2

Există o metodă simplă de a obține toate taxonomiile înregistrate și pentru fiecare taxonomie, toți termenii aferenți, iar pentru fiecare termen, numărul de postări, fără a prelua toate datele postărilor?

Presupun că este cu siguranță posibil. De asemenea, presupun că necesită o interogare masivă la baza de date folosind $wpdb.

0
Toate răspunsurile la întrebare 2
0

Puteți face acest lucru doar cu funcția get_terms - aceasta vă permite să obțineți toți (sau o parte) dintre termenii dintr-una (sau mai multe) taxonomii.

În mod implicit, aceasta exclude termenii 'goi', așa că va trebui să setați argumentele corespunzător.

 //Array de taxonomii pentru care se obțin termenii
 $taxonomies = array('category','post_tags','my-tax');
 //Setare argumente - nu 'ascunde' termenii goi.
 $args = array(
     'hide_empty' => 0
 );

 $terms = get_terms( $taxonomies, $args);
 $empty_terms=array();

 foreach( $terms as $term ){
     if( 0 == $term->count )
          $empty_terms[] = $term;

 }

 //$empty_terms conține termenii care sunt goi.

Dacă doriți să obțineți un array cu taxonomiile înregistrate programatic, puteți folosi funcția get_taxonomies()

4 iul. 2012 01:48:28
0
<?php
// numele taxonomiei tale
$tax = 'cat';

// obține termenii taxonomiei
$terms = get_terms( $tax, $args = array(
  'hide_empty' => false, // nu ascunde termenii goi
));

// parcurge toți termenii
foreach( $terms as $term ) {

    // Obține link-ul termenului
    $term_link = get_term_link( $term );

    if( $term->count > 0 )
        // afișează link către arhiva termenului
        echo '<a href="' . esc_url( $term_link ) . '">' . $term->name .'</a>';

    elseif( $term->count !== 0 )
        // afișează numele
        echo '' . $term->name .'';
}
?>
17 oct. 2017 03:43:10