Zählen der Anzahl der Beiträge in einer Kategorie und ihrer Unterkategorien und Anzeigen des Ergebnisses mit Hilfe des Shortcodes

Ich versuche, einen Shortcode zu erstellen, um die Anzahl der Posts in einer Kategorie anzuzeigen. Ich habe dies erfolgreich mit diesem Code gemacht:

// Add Shortcode to show posts count inside a category function add_count_of_posts_in_category() { $term = get_term( 7, 'category' ); $count = $term->count; echo $count; } add_shortcode( 'show-posts-count', 'add_count_of_posts_in_category' ); 

Dies bedeutet jedoch, dass ich die ID der Kategorie angeben muss, damit der Shortcode funktioniert. Das bedeutet, dass ich einen Shortcode pro Kategorie erstellen muss, was nutzlos ist.

Ich versuche eine Möglichkeit zu finden, den Kategorie-ID-Teil mit einer Variablen zu modifizieren, so dass ich den Shortcode wie folgt verwenden kann: [show-posts-count="cars"] um die Post-Anzahl in der Kategorie Autos anzuzeigen. Ich kann keinen Weg finden, dies zu tun.

Deine Hilfe ist sehr Willkommen.

EDIT: 29/09/2016 Nachdem der Code funktioniert hat, versuche ich, die function zu erweitern, um auch die Posts in der Child-Kategorie zu zählen.

Wenn also die Hauptkategorie keine Beiträge hat, aber 2 Unterkategorien hat, jede hat Beiträge, dann, wenn ich den Shortcode für die Hauptkategorie verwende, ist die angezeigte Zahl die Summe aller Beiträge in der Hauptkategorie (falls vorhanden), in neben, die Anzahl der Beiträge in den Unterkategorien und die Unter-Unterkategorien .. etc

Ich versuchte mit get_term_children( $term, $taxonomy ); , wusste aber nicht, wie die Anzahl der Unterkategorien zu ermitteln ist, und fügte sie dann zusammen.

Solutions Collecting From Web of "Zählen der Anzahl der Beiträge in einer Kategorie und ihrer Unterkategorien und Anzeigen des Ergebnisses mit Hilfe des Shortcodes"

Der Kurzwahlcode

 // Add Shortcode to show posts count inside a category function category_post_count( $atts ) { $atts = shortcode_atts( array( 'category' => null ), $atts ); // get the category by slug. $term = get_term_by( 'slug', $atts['category'], 'category'); return ( isset( $term->count ) ) ? $term->count : 0; } add_shortcode( 'category_post_count', 'category_post_count' ); 

Verwendung

 [category_post_count category="category_slug_or_name"] 

Wenn Sie die Zählung nach Namen erhalten möchten, ändern Sie diese nicht

 $term = get_term_by( 'slug', $atts['category'], 'category'); 

zu diesem:

 $term = get_term_by( 'name', $atts['category'], 'category');