我正在创建一系列选择下拉菜单,从各种分类中提取数据。我为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);
太好了。这就是我想要的。但它遗漏了一些东西。默认值。
在我的例子中,我希望它甚至不会出现在数据库中。类似于“按颜色购买-->”,因为如果它只有第一个值,没有人会知道它是什么以及该做什么。不太好。
那么,我是否可以合并一些语句来将这一行代码添加到我的选择菜单中?
最合适的回答,由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。