我试图让以下wp_dropdown_categories调用根据用户之前提交的内容预先选择值。这是更大的用户配置文件编辑表单的一部分。这些值被拉得很好,但如果先前已选择它们,则不会自动突出显示。任何帮助,将不胜感激!! job_ind_pref_call =自定义用户profiel字段。
</label> <?php
$sel = 0;
$sel1 = get_user_meta($user_ID, 'job_ind_pref_call', true);
if(isset($_POST['job_ind_pref_call'])) {
$sel1 = $_POST['job_ind_pref_call'];
}
if (isset($posted['job_term_cat']) && $posted['job_term_cat']>0) $sel = $posted['job_term_cat'];
global $featured_job_cat_id;
$args = array(
'orderby' => 'name',
'exclude' => 3,
'order' => 'ASC',
'name' => 'job_ind_pref_call[]',
'hierarchical' => 1,
'echo' => 0,
'class' => 'job_cat',
'selected' => $sel1,
'taxonomy' => 'job_cat',
'hide_empty' => false
);
$dropdown = wp_dropdown_categories( $args );
$dropdown = str_replace('class=\'job_cat\' >','class=\'job_cat\' multiple="multiple" size="6" onClick=GetMDDselections("job_ind_pref_call") ><option value="">'.__('Select a Line…', 'colabsthemes').'</option>',$dropdown);
echo $dropdown;
?> </p>
答案 0 :(得分:0)
首先,WordPress工作人员建议您使用wp_category_checklist()来表示多个值。
如果你仍然坚持使用wp_dropdown_categories()
,你必须准备好使用......非正式的方式来使选定的选项有效。
以下是您需要做的事情:
1-将新的自定义参数和新的Walker类(我们将在步骤2中定义)传递给wp_dropdown_categories()
函数。假设我们称这个函数为:
<?php
wp_dropdown_categories( array(
'_selected' => $selected_cats_arr,
'walker' => 'CategoryDropdownMultiple'
) );
?>
2-创建一个新的Walker类,配置为根据我们的新自定义参数选择选项。 Walker的代码基于 wp-includes / category-template.php 中定义的Walker_CategoryDropdown
。
<?php
class Walker_CategoryDropdownMultiple extends Walker {
var $tree_type = 'category';
var $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
function start_el( &$output, $category, $depth, $args, $id = 0 ) {
$pad = str_repeat(' ', $depth * 3);
$cat_name = apply_filters('list_cats', $category->name, $category);
$output .= "\t<option class=\"level-$depth\" value=\"".$category->term_id."\"";
// HERE IS THE ONLY CHANGE FROM THE ORIGINAL FILE
// We check our custom parameter which is an array instead of a single value.
if ( isset( $args['_selected'] ) && in_array( $category->term_id, $args['_selected'] ) )
$output .= ' selected="selected"';
$output .= '>';
$output .= $pad.$cat_name;
if ( $args['show_count'] )
$output .= ' ('. $category->count .')';
$output .= "</option>\n";
}
}
?>
注意:
wp_dropdown_categories()
及以后的单个值。