Wordpress排序类别下拉列表?

时间:2011-12-21 13:56:20

标签: wordpress sorting categories alphabetical

我正在使用User-Submitted-Posts插件,以便让用户将他们的图像提交到我的wordpress网站。每个图像都在一个类别中上传。这些类别在wordpress管理区域中设置,并使用以下代码提取到提交表单中。

我唯一的问题是,此网页表单按类别ID排序按类别排序。因此,当我添加一个类别时,即使它以字母A开头,它也会出现在底部。

有人可以让我知道如何编辑以下代码,使所有类别按ASC字母顺序排列吗?

 <li class="usp_category">
                <label for="user-submitted-category" class="usp_label"><?php _e('Categories'); ?></label>
                <div> 
                    <select class="usp_select" name="user-submitted-category" id="user-submitted-category">

                        <?php foreach($settings['categories'] as $categoryId) { $category = get_category($categoryId); if(!$category) { continue; } ?>
                        <option class="usp_option" value="<?php echo $categoryId;?> "><?php $category = get_category($categoryId); echo htmlentities($category->name); ?></option>
                        <?php } ?>
                    </select>
                </div>
            </li>

1 个答案:

答案 0 :(得分:1)

我实际上无法尝试这个,而且我不知道你的插件是如何工作的...但是我想到的最简单的解决方案就是做2个foreach循环。这将在您的&lt; select&gt;&lt; / select&gt;内:

    <?php
    $cats = array();
    // get what you need in an array
    foreach($settings['categories'] as $catid) {
        $cat = get_category($catid);
        if(is_object($cat)) $cats[$catid] = $cat->name; // why htmlentities() ?
    }
    // sort by name
    asort($cats);
    foreach($cats as $catid => $catname)
        echo "<option class=\"usp_option\" value=\"{$catid}\">{$catname}</option>";
    ?>

希望它有效/帮助