【问题标题】:Wordpress sort category dropdown list?Wordpress排序类别下拉列表?
【发布时间】:2011-12-21 13:56:19
【问题描述】:

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

我唯一的问题是,这个 Web 表单按类别 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>

【问题讨论】:

  • 如何填充 $settings['categories']?看起来在填充时对它进行排序比此时更容易。
  • 回显“
    ”; print_r($settings['categories']);回声“
    ”;先看结构。变量本身并没有显示它是如何排序的。
  • 您很可能需要转到创建 $settings 数组的代码并在那里进行排序。

标签: wordpress sorting categories alphabetical


【解决方案1】:

我实际上无法尝试这个,我不知道你的插件是如何工作的......但我想到的最简单的解决方案是执行 2 个 foreach 循环。这将在您的 内:

    <?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>";
    ?>

希望它有效/有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    相关资源
    最近更新 更多