web-dev-qa-db-ja.com

このwp_list_categoriesクエリをリセットするにはどうすればよいですか?

Wp_list_categoriesでカテゴリのリストを生成するクエリをリセットするにはどうすればいいですか?

以下のクエリはカテゴリの2列のリストを作成し、それが2番目のコードチャンクと共に表示されます。

私はjQueryタブでこれらのクエリのうちの2つ(カテゴリの異なる文字列を含む)を使ってカテゴリの異なるリストを表示しています。

問題は、2番目のタブには2番目のクエリのカテゴリではなく両方のカテゴリのリストが表示されるため、最初のクエリをリセットする必要があることです。

私は<?php wp_reset_query();?>を試しましたが、それはWPループでのみ機能します。誰かアイデアがありますか?

    <?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() はカテゴリアーカイブへのリンクのリストを返す(またはパラメータによってはエコー)単純な関数です。リセットする必要はありません。

WP_Query クラスの新しいインスタンスを作成するときは、postdataをリセットする必要があります。なぜなら、 テンプレートタグ そうでなければ、メインクエリーではなくそのクエリーを使用します。

あなたは言った:

私はこれらのクエリのうち2つを使用しています(異なるカテゴリを含む文字列)...

"category include strings"が2つのクエリの唯一の違いであると思いますか。

このスニペットを2回目に使用するときは、変数$cat_left$cat_rightが実際の犯人です。それらは上書きされず、新しい値が配列の末尾に追加されます。

2回目にそれらを$cat_left_2および$cat_right_2に名前変更するか、またはその中間に NULL に設定します。

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