WordPress下拉类别作为数组用于页面生成器

时间:2017-05-25 作者:Sadia Mehjabin

我需要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。我做错了什么?

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

部分正确,您没有在参数中传递cat id。尝试

$categories_array[ $category->term_id ] = $category->name;
现在,您将获得类别id作为下拉值。

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网友:Mehedi_Sharif

有一个默认的wordpress函数。它将返回具有类别id的列表中的所有类别。

wp_list_categories();

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建议的代码。

结束

相关推荐

如何处理WordPress和Pocket API来自动管理我托管的WordPress博客上的内容?

我需要一些帮助,我认为这是一个使用php快速且相对简单的技巧:处理Wordpress和Pocket API,以自动管理托管Wordpress博客上的内容我正在运行一个关于我感兴趣的各种主题的wordpress博客。除此之外,我还结合Feedly和Pocket(即“以后再读”服务)阅读了许多与这些主题相关的内容。因为我想保持一个有组织的、自我托管的好阅读档案,所以我想让我的Pocket帐户和Wordpress博客有效地进行交流。目标使用Pocket和Wordpress API,我想提出以下解决方案:当我将口