在WordPress选项页面上刷新后,在选择框中显示存储的选择框值

时间:2013-07-01 12:32:47

标签: wordpress options drop-down-menu

我创建了一个WordPress选项页面,在该页面上我想要一个选择框,我可以在其中从我的网站中选择一个页面。以下选项代码完美地完成了!我选择一个页面,点击保存按钮,它会存储正确的值。

我的问题是,当我保存页面(或刷新它)时,选择框不会显示所选和存储的值,而是列表中的第一个。如何使复选框显示存储的值?

<?php break; case 'select_pages':   ?>
<div class="options_input">
    <label class="option_title" for="<?php echo $option_name.'['.$valueid.']'; ?>"><?php echo $value['name']; ?></label><br>
    <select name="<?php echo $option_name.'['.$valueid.']'; ?>" id="<?php echo $option_name.'['.$valueid.']'; ?>">
        <option value=""><?php echo esc_attr( __( '&mdash; Select &mdash;' ) ); ?></option> 
       <?php
            $page_selected = $options[$valueid];
            $pages = get_pages();
            foreach ( $pages as $page) :
        ?>
        <option value="<?php echo $page->post_title; ?>" <?php if ( $page_selected && in_array( $page->post_title, $page_selected ) ) { echo 'selected="selected"'; }?>><?php echo $page->post_title; ?></option>
        <?php endforeach; ?>
    </select>
    <?php $cc_responsive_theme_options = get_option('cc_responsive_theme_options'); echo $cc_responsive_theme_options['footer_link_1']; ?>
    <span class="option_desc"><?php echo $value['desc']; ?></span>
</div>

1 个答案:

答案 0 :(得分:0)

无意中找到了解决方案。该复选框设置为多个,它没有将存储的值与选择框中的值进行比较。

这一行:

<option value="<?php echo $page->post_title; ?>" <?php if ( $page_selected && in_array( $page->post_title, $page_selected ) ) { echo 'selected="selected"'; }?>><?php echo $page->post_title; ?></option>

必须更改为:

<option value="<?php echo $page->post_title; ?>" <?php if( $page_selected == $page->post_title) { echo 'selected="selected"'; }?>><?php echo $page->post_title; ?></option>