【问题标题】:Display the stored selectbox value in the selectbox after refresh on a WordPress options page在 WordPress 选项页面上刷新后在选择框中显示存储的选择框值
【发布时间】:2013-07-01 12:32:46
【问题描述】:

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

【问题讨论】:

  • var_dump($options[$valueid];) 看看你得到了什么空值或存储值
  • 查看核心函数selected,并在WordPress Development中研究。
  • 修复了!原来是以下 sn-p:&lt;?php if ( $page_selected &amp;&amp; in_array( $page-&gt;post_title, $page_selected ) ) { echo 'selected="selected"'; }?&gt; 改为:&lt;?php if( $page_selected == $page-&gt;post_title) { echo 'selected="selected"'; }?&gt;

标签: wordpress options drop-down-menu


【解决方案1】:

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

这一行:

<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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    相关资源
    最近更新 更多