如何将选项标记为选定

时间:2013-07-05 作者:Selma

我想在主题设置中显示帖子类别,我使用以下代码成功地做到了这一点:

<?php /* Get the list of categories */ 
            $categories = get_categories();
            foreach ( $categories as $category) :
            $selected = \'\'; 
            ?>
<option <?php echo $option ?> value="<?php echo $category->cat_ID; ?>">
<?php echo $category->cat_name; ?></option>
<?php endforeach; ?>
一切正常,我可以选择。

缺少的是,在我选择一个类别后,我保存了设置,该类别在下拉框中未标记为选中。然而,选定的类别保存在数据库中。

--

我正在使用acera主题选项,并编辑了“选择类型”以创建“选择类别”选项。

以下是我开始使用的代码:

<select name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>">
                        <?php
                        if (get_option($value[\'id\']))
                            $default = get_option($value[\'id\']);
                        else
                            $default = $value[\'default\'];

                        foreach ($value[\'options\'] as $option):
                            $selected = \'\';
                            if ($option == $default)
                                $selected = \' selected="selected"\';
                            ?>
                            <option <?php echo $selected; ?>><?php echo $option ?>

                            </option>
                        <?php endforeach; ?>


                    </select>
因此,从这一个我想显示类别(我这样做了,选项在前端工作),并将所选的一个设置为所选。(这个不见了)

谢谢

2 个回复
SO网友:tfrommen

你要找的是selected() function.

您的更新option 应如下所示:

<option
    value="<?php echo $category->cat_ID; ?>"
    <?php selected($option, $category->cat_ID); ?>>
    <?php echo $category->cat_name; ?>
</option>
// EDIT<哦,顺便说一句,在您的特定情况下,您可能需要使用wp_dropdown_categories function, 我想是吧。

这将是:

wp_dropdown_categories(
    array(
        \'selected\' => $option
        // maybe some other settings
    )
);

SO网友:Shahinul Islam

请检查您的HTML代码,您并没有给出选项的值:所以当您存储它时,它不会被保存。

<select name="<?php echo $value[\'id\']; ?>" id="<?php echo $value[\'id\']; ?>">
                    <?php
                    if (get_option($value[\'id\']))
                        $default = get_option($value[\'id\']);
                    else
                        $default = $value[\'default\'];

                    foreach ($value[\'options\'] as $option):
                        $selected = \'\';
                        if ($option == $default)
                            $selected = \' selected="selected"\';
                        ?>
                        <option <?php echo $selected; ?> value="<?php echo $option ?>"><?php echo $option ?>

                        </option>
                    <?php endforeach; ?>


                </select>

结束

相关推荐

如何在使用WP_USE_THEMES=FALSE时显示管理栏?

因此,我以“无主题”的方式使用WordPress,即不使用“博客”模板。我的站点文件位于根目录中(不在主题文件夹中),WordPress安装在自己的目录中/wordpress/ 目录“我的主题”存在的唯一目的是定制后端,包括重新标记和自定义帖子类型。(我基本上不使用插件和小部件,而是定制WordPress的实现)通过这种设置,当我的客户像往常一样查看前端页面时,有没有办法让管理栏显示出来?注意:我已尝试添加wp_head() 和wp_footer() 无济于事。我想这可能与我的自定义文件结构有关。