自定义分类选择菜单:设置默认选项值?

时间:2015-02-15 作者:Adam Bell

我正在创建一系列选择下拉菜单,从各种分类中提取数据。我为WooCommerce的颜色属性编写了以下PHP脚本:

function get_color_dropdown($taxonomies, $args){
    $myterms = get_terms($taxonomies, $args);
    $output ="<select onChange=\'window.location.href=this.value\'>";
    foreach($myterms as $term){
        $root_url = get_bloginfo(\'url\');
        $term_taxonomy=$term->taxonomy;
        $term_slug=$term->slug;
        $term_name =$term->name;
        $link = $root_url.\'/\'.$term_taxonomy.\'/\'.$term_slug;
        $output .="<option value=\'".$link."\'>".$term_name."</option>";
    }
     $output .="</select>";
return $output;
}

$taxonomies = array(\'pa_color\');
$args = array(\'orderby\'=>\'name\',\'order\'=>\'ASC\',\'hide_empty\'=>true);
echo get_color_dropdown($taxonomies, $args);
太好了。这就是我想要的。但它遗漏了一些东西。默认值。

在我的例子中,我希望它甚至不会出现在数据库中。类似于“按颜色购买-->”,因为如果它只有第一个值,没有人会知道它是什么以及该做什么。不太好。

那么,我是否可以合并一些语句来将这一行代码添加到我的选择菜单中?

1 个回复
最合适的回答,由SO网友:Ryan Jarrett 整理而成

只需在for循环之前再添加一行。例如:

function get_color_dropdown($taxonomies, $args){
    $myterms = get_terms($taxonomies, $args);
    $output ="<select onChange=\'window.location.href=this.value\'>";
    $output .= "<option value=\'default\'>Shop by Color --></option>";
    foreach($myterms as $term){
        $root_url = get_bloginfo(\'url\');
        $term_taxonomy=$term->taxonomy;
        $term_slug=$term->slug;
        $term_name =$term->name;
        $link = $root_url.\'/\'.$term_taxonomy.\'/\'.$term_slug;
        $output .="<option value=\'".$link."\'>".$term_name."</option>";
    }
    $output .="</select>"; return $output;
}

$taxonomies = array(\'pa_color\');
$args = array(\'orderby\'=>\'name\',\'order\'=>\'ASC\',\'hide_empty\'=>true);
echo get_color_dropdown($taxonomies, $args);
您可以随时检查返回值是否为“default”,以查看是否未设置select。

结束