我们可以通过get_categories() 函数(将获得与wp_dropdown_categories() 函数),但作为数组且不带标记。
值为returned 作为数组,我们可以循环遍历类别并自己生成HTML。
通常,我们的目标是这样的结构:
<select name="categories">
<option value="1">Category 1</option>
<option value="2">Category 2</option>
<option value="3">Category 3</option>
</select>
因此,我们将通过PHP通过循环
$categories
阵列:
echo \'<select name="categories">\';
// Get categories as array
$categories = get_categories( $args );
foreach ( $categories as $category ) :
echo \'<option value="\' . $category->term_id . \'">\' . $category->name . \'</option>\';
endforeach;
echo \'</select>\';
可以通过
$args
参数(参见
Codex 供参考)。
现在我们只需要添加selected
属性中的<option>
, 因此,我们将通过一个简短的if语句来添加它,以比较当前$category->term_id
保存在数据库中的那个$stored_category_id
:
$stored_category_id = 10; // This is the value from the database
$selected = ( $stored_category_id == $category->term_id ) ? \'selected\' : \'\';
就这样!您的完整代码段(可能在开头有一个默认选项)现在应该如下所示:
echo \'<select name="categories">\';
// Add custom option as default
echo \'<option>\' . __(\'No Category\', \'text-domain\') . \'</option>\';
// Get categories as array
$categories = get_categories( $args );
foreach ( $categories as $category ) :
// Check if current term ID is equal to term ID stored in database
$selected = ( $stored_category_id == $category->term_id ) ? \'selected\' : \'\';
echo \'<option value="\' . $category->term_id . \'" \' . $selected . \'>\' . $category->name . \'</option>\';
endforeach;
echo \'</select>\';
祝你好运!:)