wake-up-neo.com

Wie setze ich diese wp_list_categories-Abfrage zurück?

Wie setze ich eine Abfrage zurück, die mit wp_list_categories eine Liste von Kategorien generiert?

Die folgende Abfrage erstellt eine zweispaltige Liste von Kategorien, die dann mit dem zweiten Codeabschnitt angezeigt wird.

Ich verwende zwei dieser Abfragen (mit unterschiedlichen Kategorieneinschlusszeichenfolgen) in einer jQuery-Registerkarte, um unterschiedliche Kategorienlisten anzuzeigen.

Das Problem ist, dass die erste Abfrage zurückgesetzt werden muss, da auf der zweiten Registerkarte nicht nur die Kategorien der zweiten Abfrage, sondern beide Kategorienlisten angezeigt werden.

Ich habe <?php wp_reset_query();?> ausprobiert, aber das funktioniert nur für die WP -Schleife. Hat jemand irgendwelche Ideen?

    <?php
    $cats = explode
    ("<br />",wp_list_categories('title_li=&echo=0&depth=1&style=none&include=12,13,14,15,16'));
    $cat_n = count($cats) - 1;
    for ($i=0;$i<$cat_n;$i++):
    if ($i<$cat_n/2):
    $cat_left = $cat_left.'<li>'.$cats[$i].'</li>';
    elseif ($i>=$cat_n/2):
    $cat_right = $cat_right.'<li>'.$cats[$i].'</li>';
    endif; endfor; ?>

    <ul class="leftcatcolumn">
    <?php echo $cat_left;?>
    </ul>
    <ul class="rightcatcolumn">
    <?php echo $cat_right;?>
    </ul>
1
markratledge

wp_list_categories() ist eine einfache Funktion, die eine Liste von Links zu Kategoriearchiven zurückgibt (oder, je nach Parameter, Echos ausgibt). Es muss nicht zurückgesetzt werden.

Wenn Sie eine neue Instanz der Klasse WP_Query erstellen, müssen Sie die Postdaten zurücksetzen, da Template-Tags Verwenden Sie andernfalls diese Abfrage und nicht die Hauptabfrage.

Du hast gesagt:

Ich verwende zwei dieser Abfragen (mit verschiedenen Kategorie enthalten Zeichenfolgen) ...

Ich gehe mal davon aus, dass die "category include strings" der einzige Unterschied zwischen den beiden Abfragen sind ?!

Wenn Sie dieses Snippet zum zweiten Mal verwenden, sind die Variablen $cat_left und $cat_right die eigentlichen Schuldigen. Sie werden nicht überschrieben, die neuen Werte werden am Ende des Arrays hinzugefügt.

Benennen Sie sie das zweite Mal in $cat_left_2 und $cat_right_2 um oder setzen Sie sie dazwischen auf NULL :

// first list here
$cat_left = NULL;
$cat_right = NULL;
// second list here
3
Johannes Pille