0

嗨,我正在尝试添加子类别选择列表,我在这里找到了一个不错的代码并且工作正常,但我想将它用作下拉选择而不是取消排序列表。谁能帮我做到这一点。

<?php
if (is_category()) {
    $cat = get_query_var('cat');
    $this_category = get_category($cat);
    $this_category = wp_list_categories('hide_empty=0&hierarchical=true&orderby=id&show_count=0&title_li=&use_desc_for_title=1&child_of='.$this_category->cat_ID."&echo=0");
    if($this_category !='<li>No categories</li>')
    {
     echo '<h3>Products</h3>'; 
     echo '<ul>'.$this_category.'</ul>'; 
    }
}
?>

我曾尝试使用 foreach 但它没有用可能是我在某个地方错了,因为不是 php 大师

<?php
    if (is_category()) {
        $cat = get_query_var('cat');
        $this_category = get_category($cat);
        $this_category = wp_list_categories('hide_empty=0&hierarchical=true&orderby=id&show_count=0&title_li=&use_desc_for_title=1&child_of='.$this_category->cat_ID."&echo=0");
        if($this_category !='<li>No categories</li>')
        {
            echo '<h3>Products</h3>';
            echo '<select>';
            foreach($this_category as $list) {
            echo '<option>'.$list.'</option>'; 
            }
            echo '</select>';
        }
    }
?>
4

1 回答 1

0

所以你的代码似乎没有进入 foreach 循环。变量 $this_category 似乎是一个字符串,而不是可以迭代的数组。

做一个字符串替换来切换<li>标签,<option>然后回显它:

$this_category = str_replace('<li>', '<option>', $this_category);
$this_category = str_replace('</li>', '</option>', $this_category);

echo '<select>'.$this_category.'</select>';
于 2012-05-14T13:34:44.040 回答