0

我创建了一个 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>
4

1 回答 1

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>
于 2013-07-04T09:06:53.543 回答