这里的代码有一些问题。
对该函数的调用的参数混淆了。$args
首先传递给函数,但在函数定义中,它们应该是第二个传递的您已修复的拼写错误$argo
到$args
在您的功能中foreach
循环您正在生成许多您没有使用的东西在这里,我简化了您的代码,只采用1个分类法,而不是多个分类法。它调用wp_parse_args()
所以你什么都不能传给$args
参数或任何要覆盖默认数组的内容。这个foreach
据我所知,你只需要弹头和标题。最后,我们使用条件检查来包装循环,以确保我们有条件进行循环:
function get_terms_dropdown_tm( $taxonomy, $args = array() ) {
$args = wp_parse_args( $args, array(
\'orderby\' => \'name\',
\'show_count\' => 1,
\'order\' => \'DESC\',
\'hide_empty\' => 1
) );
$myterms = get_terms( $taxonomy, $args );
$output = sprintf( \'<select name="%1$s">\', esc_attr( sanitize_text_field( $taxonomy ) ) );
$output .= "<option value=\'#\'>Seleziona la marca</option>";
if( ! is_wp_error( $myterms ) ) {
foreach( $myterms as $term ) {
$output .= sprintf( \'<option value="%1$s">%2$s</option>\', $term->slug, $term->name );
}
}
$output .= "</select>";
return $output;
}
电话:
$taxonomy = \'tassonomia_marca\';
$select = get_terms_dropdown_tm( $taxonomy );
$select = preg_replace( "#<select([^>]*)>#", "<select$1 onchange=\'return this.form.submit()\'>", $select );
echo $select;