我需要wordpress类别作为下拉列表。到目前为止,我的代码
function cat_drop_down(){
$categories_array = array();
$categories = get_categories();
foreach( $categories as $category ){
$categories_array[] = $category->term_id;
}
return $categories_array;
}
这将完美地呈现下拉列表,但不会传递类别id。其呈现html如下
<select data-setting="tab_title">
<option value="0">2</option>
<option value="1">14</option>
<option value="2">1</option>
</select>
所以我只得到0,1,2个值,而不是类别id的2,14,1。我做错了什么?
SO网友:Arun
function cat_drop_down(){
$categories_array = array();
$args = array(
\'type\' => \'post\',
\'child_of\' => 0,
\'parent\' => \'\',
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'hide_empty\' => false,
\'hierarchical\' => 1,
\'exclude\' => \'\',
\'include\' => \'\',
\'number\' => \'\',
\'taxonomy\' => \'category\',
\'pad_counts\' => false
);
$categories = get_categories($args);
$i =0;
foreach( $categories as $category ){
$categories_array[$i][\'id\'] = $category->term_id;
$categories_array[$i][\'name\'] = $category->name;
$i++;
}
return $categories_array;
}
$cats = cat_drop_down();
echo \'<select data-setting="tab_title">\';
foreach($cats as $cat)
{
echo "<option value=\'".$cat[\'id\']."\'>".$cat[\'name\']."</option>";
}
echo \'</select>\';
SO网友:Frank P. Walentynowicz
不,你没有做错什么。您的类别ID数组很好。我知道您正在将此数组传递给页面生成器,而页面生成器又会构建表单的select
下拉列表。值0,1,2只是$categories_array
. 如果您仍然可以访问$categories_array
, 所选选项的值为1,然后选择$id = $categories_array[1]
- 这是14。
如果要构建select下拉列表,而不是页面生成器,则可以如下所示:
<select data-setting="tab_title">
<option>2</option>
<option>14</option>
<option>1</option>
</select>
然后,您将直接获得所选类别id。
如果您的页面生成器接受一个对数组-id、name,那么您将在@Arun的答案中得到类似select的结果。当然,您必须将构建阵列的代码更改为@Arun建议的代码。