如何获取wp_Dropdown_Categories的值

时间:2014-12-21 作者:Jamie

我正在制作一个小部件,我使用了wp_dropdown_categories() 功能。我搞不懂的是如何从下拉列表中获取所选值。

所选变量存储在哪个变量中?

$args = array(\'show_option_none\' => \'No Category\',\'hide_empty\' => 0);
wp_dropdown_categories( $args );

1 个回复
最合适的回答,由SO网友:Sven 整理而成

我们可以通过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>\';
祝你好运!:)

结束

相关推荐

WP_DROPDOWN_PAGES()为POST类型返回空字符串

wp_dropdown_pages() 当用于任何职位类型时page 返回空字符串。Codex says post类型可以作为键传递,函数也可以使用get_pages() 这需要post_type 钥匙所以,我不明白为什么它对我不起作用。 $args = array( \'echo\' => 1, \'name\' => \'my_posts\', \'post_type\' => \'post\',