wake-up-neo.com

Kategorien oder Unterkategorien mit Namen und Beschreibung in category.php anzeigen

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:

  • Wenn ich auf Cat1 oder Cat2 klicke, muss ich so etwas anzeigen:
  • Wiederholen Sie diesen Vorgang so lange die Kategorie & Unterkategorie als Beiträge! (wichtig)

It should looks like this

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 ..)

1
Marie_Fleischer

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!

2
RachieVee