是否为下拉表单菜单重新创建分类层次结构?

时间:2013-01-02 作者:Sweepster

我有一个包含下拉菜单的表单。此表单位于页面上form.php 这不是我的主题。它存在于我的网站之外。此下拉菜单包含一个名为“格式”的自定义分类法的值列表。我的格式如下:

Entry Form
Facebook
  - Entry Form
  - Page
Twitter
这是我目前的代码:

<?php include("wp-blog-header.php"); ?>
<?php 
global $wpdb;
$getFormats = $wpdb->get_results($wpdb->prepare("

        SELECT * FROM wp_terms p 

        LEFT OUTER JOIN wp_term_taxonomy t ON p.term_id = t.term_id

        WHERE t.taxonomy = \'format\'

        ")); ?> // This gets all the values for the format taxonomy

<form> //start form
<select name="format"> //start dropdown

<?php
foreach ($getFormats as $format) { //spit out the formats
    echo "<option value=\'".$format->name."\'>".$format->name."</option>";
} ?>

</select> //end dropdown
</form> // end form
?>
到目前为止,我的下拉列表如下所示:

Entry Form
Facebook
Entry Form
Page
Twitter
第一个问题:如何使层次结构保持不变(即保持缩进)?

我的HTML输出如下:

<option value="Entry Form">Entry Form</option>
<option value="Facebook">Facebook</option>
<option value="Entry Form">Entry Form</option>  // <---- this is gonna be a problem
<option value="Page">Page</option>
<option value="Twitter">Twitter</option>
第二个问题:您会注意到Entry Form的第二个实例的输出与第一个实例相同。显然,这将是提交表单的一个问题。我怎样才能使它独一无二?

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

您可以使用standard WordPress函数,获取已格式化的下拉列表,并立即解决这两个问题。

像这样:

define( \'WP_USE_THEMES\', false );
require( \'./wp-load.php\' );

wp_dropdown_categories(
    array(
        \'child_of\' => 0,
        \'class\' => \'postform\', 
        \'depth\' => 0,
        \'echo\' => 1,
        \'exclude\' => \'\', 
        \'hide_empty\' => false, 
        \'hide_if_empty\' => false,
        \'hierarchical\' => true,
        \'id\' => \'\',
        \'name\' => \'cat-dropdown\', 
        \'order\' => \'ASC\',
        \'orderby\' => \'name\', 
        \'selected\' => 0, 
        \'show_count\' => 0,
        \'show_option_all\' => \'\', 
        \'show_option_none\' => __(\'None\'),
        \'tab_index\' => 0, 
        \'taxonomy\' => \'category\',
    )
);
输出:

<select name=\'cat-dropdown\' id=\'cat-dropdown\' class=\'postform\' >
    <option value=\'-1\'>None</option>
    <option class="level-0" value="2">Other</option>
    <option class="level-0" value="1">Uncategorized</option>
    <option class="level-1" value="4">&nbsp;&nbsp;&nbsp;Other</option>
    <option class="level-2" value="5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Other</option>
</select>
对于默认类别:categories list

结束

相关推荐

使用QUERY_POST()函数列出类别中的所有帖子

我是一个C programmer, 对…知之甚少PHP. 我用wordpress建立了一个博客。昨天,我尝试创建页面www.abc.com/server, 此页面将列出属于server 类别我在wordpress文档和Google中找到了一些有用的信息我创建了如下模板:<?php /* * Template name: list_catetory */ ?> <?php get_header(); ?> .