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
.

Michael Ecklund
6.8K
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()

Stephen Harris
32.6K
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 .'';
}
?>

ztvmark
121
17 oct. 2017 03:43:10
Întrebări similare
2
răspunsuri
6
răspunsuri
1
răspunsuri