Ich habe das folgende Problem für meinen Kunden. Können einige eine mögliche Lösung für dieses Problem vorschlagen?
Diese Website verfügt über Kategorien und Unterkategorien
Cat1
-Subcat1
-Subcat2
-Subcat3
Cat2
-Subcat1
-Subcat2
-Subcat3
WAS ICH BRAUCHE IST:
Nachdem ich auf diese Unterkategorien geklickt habe, muss ich in der Lage sein, eine Seite mit allen Beiträgen aus diesen Unterkategorien zu erstellen.
PS: Schön, wenn du mir sagst, wie ich das machen kann. Und wie kann ich die Variable aus meiner category.php in die DIV einfügen? (get_the_title
; Get_the desciption ..)
Soweit ich weiß, gibt es eine Liste der übergeordneten Kategorien und der Unterkategorien, die wie ein Menü aussehen. Für deinen ersten Screenshot:
Cat1-Subcat1-Subcat2-Subcat3
Cat2-Subcat1-Subcat2-Subcat3
Angenommen, Sie haben nur zwei Kategorienebenen, verwenden Sie diese, um Ihre Kategorien anzuzeigen. Beachten Sie, dass Sie dies außerhalb der Schleife verwenden können:
<ul class="category-sidebar">
<?php
$get_parent_cats = array(
'parent' => '0' //get top level categories only
);
$all_categories = get_categories( $get_parent_cats );//get parent categories
foreach( $all_categories as $single_category ){
//for each category, get the ID
$catID = $single_category->cat_ID;
echo '<li><a href=" ' . get_category_link( $catID ) . ' ">' . $single_category->name . '</a>'; //category name & link
$get_children_cats = array(
'child_of' => $catID //get children of this parent using the catID variable from earlier
);
$child_cats = get_categories( $get_children_cats );//get children of parent category
echo '<ul class="children">';
foreach( $child_cats as $child_cat ){
//for each child category, get the ID
$childID = $child_cat->cat_ID;
//for each child category, give us the link and name
echo '<a href=" ' . get_category_link( $childID ) . ' ">' . $child_cat->name . '</a>';
}
echo '</ul></li>';
} //end of categories logic ?>
</ul><!--end of category-sidebar-->
Für Ihren zweiten Screenshot gehe ich davon aus, dass beim Klicken auf eine übergeordnete Kategorie im obigen Menü eine Seite mit jeder Unterkategorie und ihrer Beschreibung angezeigt wird.
Beziehen Sie sich auf das Tutorial, das ich in den Kommentaren für die Verwendung von Bedingungen in der category.php hinterlassen habe. Im Grunde werden Sie im Archiv prüfen, ob eine übergeordnete Kategorie geladen wird oder eine Unterkategorie. Wenn es sich um eine Unterkategorie handelt, zeigen Sie eine Schleife mit Beiträgen an. Wenn es sich um eine übergeordnete Kategorie handelt, zeigen Sie die Unterkategorien mit der Beschreibungsseite an. So würde der Code für die Unterkategorien und ihre Beschreibungen in der Schleife aussehen:
<?php
//for this category on an archive page, get the ID
$thisID = get_query_var('cat');
$get_children_cats = array(
'child_of' => $thisID //get children of this parent using the thisID variable from earlier
);
$child_cats = get_categories( $get_children_cats );//get children of this parent category
foreach( $child_cats as $child_cat ){
//for each child category, get the ID
$childID = $child_cat->cat_ID;
//for each child category, give us the link and name and description
echo '<div class="child-wrap"><h2><a href=" ' . get_category_link( $childID ) . ' ">' . $child_cat->name . '</a></h2><br/>';
echo '<p>' . $child_cat->category_description . '</p></div>';
} //end of categories logic ?>
Mir ist klar, dass dies eine Menge Code ist, aber es sieht so aus, als ob Sie mehrere Dinge tun möchten. Die einzige Aufgabe, an der Sie selbst arbeiten müssen, ist, das Archiv zu veranlassen, entweder die Liste der Beiträge oder Ihre Seite im zweiten Screenshot anzuzeigen. Hoffe, dies hilft besser als die Ressourcen in den Kommentaren, die ich zuvor bereitgestellt hatte. Viel Glück!