Conditional Tag Problem im Archiv

  • Hallo,

    ich habe ein kleines Problem und hoffentlich kann mir jemand weiterhelfen:

    Ich habe in meinem Blog eine Kategorie mit der ID8. In Wordpress unter den Einstellungen habe ich nun die Anzahl der Artikel, welche ausgegeben werden sollen auf 12 gestellt.

    Jetzt möchte ich folgendes realisieren:
    Sobald die Kategorie mit der ID8 aufgerufen wird, sollen nicht nur 12 Artikel ausgegeben werden, sondern alle Artikel, die sich in dieser Kategorie befinden.
    Dazu habe ich folgenden Code in die Archive.php eingebunden:

    Das klappt soweit wunderbar! Nun habe ich jedoch meiner Kategorie mit der ID8 noch Unterkategorien hinzugefügt. Die Struktur der Kategorie ID8 sieht nun folgedermaßen aus:

    Kategorie ID 8
    - Kategorie ID9 (Unterkategorie)
    - Kategorie ID10 (Unterkategorie)

    Ich möchte jetzt, dass auch alle Artikel aus der Kategorie ID9 und Kategorie ID10 ausgegeben werden, sobald man eine dieser beiden Kategorien öffnet.

    Nun könnte ich folgendes machen:

    HTML
    <?php if (is_category('8') || is_category('9') || is_category('10')) { ?>

    Gibt es hier vielleicht eine Lösung, dass ich nicht jede Kategorie manuell hinterlegen muss, da in diesem Beispiel ID9 und ID10 ja Unterkategorien von ID8 sind... sprich, bei allen Unterkategorien von ID8 sollen immer alle Artikel auf in der Übersicht angezeigt werden und bei allen anderen Kategorien, welche nichts mit ID8 zu tun haben, sollen immer nur 12 Artikel angezeigt werden...

    Kann mir hier jemand bitte weiterhelfen? Gruß und vielen lieben Dank!


    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Du brauchst also die Kinder und die Kategorie 8 ist der Vater ;)
    kids =Kindkategorien
    catf =Vaterkategorie

    PHP
    <?php
    $kids = array();
    $catf = 8;
    $cats = get_categories('parent='.$catf);
    foreach($cats as $cat) {
    $kids[] = $cat->term_id; } ;
    if( is_category( $kids ) ) :
     dann tu ich was ich dir sage....
    endif; ?>

    hilft das weiter?

  • ersetzt jeweils die ersten zwei zeilen deines codes:

    nicht mit @Monika's code, sondern anders; zB:

    PHP
    <?php if (is_category(8) || in_array(8, get_ancestors(get_query_var('cat'), 'category')) ) { ?>
    <?php $my_query = new WP_Query('cat='.get_query_var('cat').'&posts_per_page=-1'); ?>



    http://php.net/manual/en/function.in-array.php
    http://codex.wordpress.org/Function_Reference/get_ancestors

    oder aufgebaut auf @Monika's code:

    PHP
    <?php
    $kids = array(8); //beginn mit der vaterkategorie
    $catf = 8;
    $cats = get_categories('child_of='.$catf); //alle nachkommen
    foreach($cats as $cat) { //fuege alle kinder und kindeskinder dazu
    $kids[] = $cat->term_id; } ;
    if( is_category( $kids ) ) { ?>
    <?php $my_query = new WP_Query('cat='.get_query_var('cat').'&posts_per_page=-1'); ?>



    http://codex.wordpress.org/Function_Reference/get_categories

  • Hi, ich habe das jetzt so eingebunden:

    Jedoch funktioniert es nicht bei den Unterkategorien der Kategorie ID8... Wenn ich die Kategorie mit der ID8 aufrufe, dann werden alle Artikel angezeigt, sobald ich aber eine Unterkategorie von ID8 aufrufe, werden wieder nur 12 Artikel angezeigt....


    ****************

    Sorry, scheint doch zu funktionieren... :-) DANKE!


    Einmal editiert, zuletzt von cester (5. Oktober 2011 um 17:12)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!