erhalten Sie alle Unterkategorien, ohne irgendeine Kategorie anzugeben

Ich habe 2 Kategorienstufen (nur eine Unterkategorie. Keine sub-sub ). Ich brauche alle Unterkategorien ohne Elternkategorie. (Ich möchte keine übergeordnete Kategorie angeben.)

Beispiel:

 p_cat1 s_cat1 s_cat2 p_cat4 p_cat3 s_cat4 s_cat5 s_cat7 

von hier brauche ich

 s_cat1 s_cat2 s_cat4 s_cat5 s_cat7 

Und ich brauche dort eine URL für jede dieser Unterkategorien. Ich möchte für jede Unterkategorie angeben.

Wie mache ich das?

Solutions Collecting From Web of "erhalten Sie alle Unterkategorien, ohne irgendeine Kategorie anzugeben"

Sie könnten get_categories() .

Gibt ein Array von Kategorienobjekten zurück, die den Abfrageparametern entsprechen.

Argumente entsprechen in etwa denen von wp_list_categories und können entweder als Array oder in der Abfragesyntax übergeben werden.

 // Fetch parent categories $parent_categories = get_categories( 'parent=0' ); foreach ( $parent_categories as $parent_category ) { // Fetch child categories $args = array( 'parent' => $parent_category->term_id ); $categories = get_categories( $args ); foreach ( $categories as $category ) { printf( '
%s
', $category->name ); } }

Dies ist ein sehr einfaches Beispiel für den Code ohne zusätzliche Parameter wie hide_empty , type usw.

Die function get_categories von WordPress gibt alle Kategorien zurück, Sie können die Liste der von get_categories zurückgegebenen Kategorien durchlaufen und nach der parent Eigenschaft suchen. Wenn parent ‘0’ ist, dann ist es die übergeordnete Kategorie, andernfalls ist es die Unterkategorie.

 function get_sub_categories() { $cats = get_categories(); $subcats = array(); foreach( $cats as $cat ) { if ($cat->parent != '0') { $subcats[] = $cat; } } return $subcats; } 

Ich weiß nicht, wie Sie mit URL wollen, aber Sie können versuchen, die folgende function, die nur Sub-Kategorien Name Hyper Link zu ihrer Kategorie URLs zurückgeben wird

 function get_sub_categories() { $cats = get_categories(); $subcats = array(); foreach( $cats as $cat ) { if ($cat->parent != '0') { $subcats[] = '' . $cat->name . ''; } } return $subcats; } 
 function kill_childcat_postlink($link) { $result = $link; $bloghome = get_bloginfo( 'home' ); if (preg_match('%' . $bloghome . '/(.*?)/(.*?)/(.*?)/$%i', $link)) $result = preg_replace('%' . $bloghome . '/(.*?)/.*?/(.*?)/$%i', $bloghome . '/$1/$2/', $link); return $result; } add_filter('post_link','kill_childcat_postlink');