Hi @all,
mit folgendem Code soll der Counter der Kategorien ausgewertet werden.
Nur leider zählt der Code die Posts in Kategorien mehrfach, die in mehreren Unterkategorien dieser Kategorie veröffentlicht sind. Ebenso zählt der auch den gleichen Post, wenn man ausversehen eine der übergeordneten Kategorien mit ausgewählt hat.
function wp_get_cat_postcount($id) {
$cat = get_category($id);
$count = (int) $cat->count;
$taxonomy = 'category';
$args = array(
'child_of' => $id,
);
$tax_terms = get_terms($taxonomy,$args);
foreach ($tax_terms as $tax_term) {
$count +=$tax_term->count;
}
return $count;
}
Alles anzeigen
Dadurch passierte mir folgendes:
- Welt (5)
- Europa (2)
- Türkei (1)
- Asien (2)
- Türkei (1)
- Europa (2)
Das Land Türkei gehört ja territorial zu Europa und Asien und es handelt sich dabei nur um 1 Posts, den ich hierbei in allen übergeordneten Kategorien mit angehackt hatte.
Wie folgt sieht es aus, wenn ich die übergeordneten Kategorien nicht angehackt habe.
- Welt (2)
- Europa (1)
- Türkei (1)
- Asien (1)
- Türkei (1)
- Europa (1)
Hat jemand eine Idee, wie ich optimal den Counter anpassen kann, damit der einen Post auch nur einmal innerhalb einer Kategorie mit Unterkategorien zählt.
Mein Gedanke war im FOREACH eine Überprüfung der ID zu machen, aber vielleicht gibt es ja noch was, um aus dem get-terms() nur einmal einen Post und nicht mehrfach den selben Post zu bekommen?