web-dev-qa-db-fra.com

get_terms avec plus que x post count

Existe-t-il un argument pour get_terms pour lequel je peux récupérer des termes qui ont seulement plus de 2 posts associés?
J'ai une page de termes qui répertorie tous mes termes pour les "artistes". La page est énorme, mais beaucoup de ces termes ne comportent qu'un seul post, je voudrais donc ne montrer que des termes significatifs.

2
Imran

Donner:

$terms = get_terms("my_taxonomy");
$count = count($terms);
if ( $count > 0 ){
    echo "<ul>";
    foreach ( $terms as $term ) {
        if ($term->count > 2) {
            echo "<li>" . $term->name . "</li>";
        }
    }
    echo "</ul>";
}

un coup de feu. Il saisira tous les termes, puis vérifiera si le $term->count est supérieur à 2 et, le cas échéant, imprimera ces termes.

2
Zach

Ceci correspond fondamentalement à @Zach déjà ajouté, mais de manière plus intelligente/illisible :)

$taxons = get_terms(
     'some_taxonomy'
    ,array(
         'hide_empty' => true // is the default
     )
);
$count = count( $taxons );
$stack = array()
if ( 0 < $count)
{
    // Catch all terms that have a count of "1"
    // As we already have excluded all with 
    // a zero count are already excluded
    $to_exclude = wp_list_filter(
         $taxons
        ,array( 'count' => 1 )
        ,'AND'
    );

    // fill our stack by filtering/diffing our 1-post taxons out
    $stack = array_diff( (array) $taxons, (array) $to_exclude )
}

echo '<pre>'.var_export( $stack, true ).'</pre>';
2
kaiser