允许用户从我的插件的下拉列表中选择页面

时间:2015-05-31 作者:Rishiraj Purohit

我有一个插件,其中有一个部分允许用户通过指定页面id来选择插件工作的页面。但我希望他能够从网站上可用的页面中选择页面。

这可以通过下拉列表或复选框来实现。

我的代码在插件的主文件中如下所示:

register_setting( \'rex_plug_options\', \'rex_plug_options\', \'rex_plug_settings_validate\' );
add_settings_field(\'rex_plugbox_text_exit_pop_selected_pages\', \'Select Pages (comma seprated page ID E.G.:  12,32,434)\', \'rex_plugbox_text_exit_pop_selected_pages\', \'rex_plug_box\', \'rex_plug_main_box\');
<?php
}
function rex_plugbox_text_exit_pop_selected_pages(){
global $rex_plug_options;
if(!isset($rex_plug_options["rex_plugbox_text_exit_pop_selected_pages"]))   {
    $rex_plug_options["rex_plugbox_text_exit_pop_selected_pages"] = "";
}
?>
    <textarea id="rex_plugbox_text_exit_pop_selected_pages" type="text" name="rex_plug_options[rex_plugbox_text_exit_pop_selected_pages]" ><?php echo sanitize_text_field( $rex_plug_options["rex_plugbox_text_exit_pop_selected_pages"] ); ?></textarea>

<?php
}
现在,这适用于文本区域,我希望它是一个下拉列表。我该怎么做?

我试过这样做:

 <select name="rex_plug_options[page_id]">
                        <?php
                        if( $pages = get_pages() ){
                            foreach( $pages as $page ){
                                echo \'<option value="\' . $page->ID . \'" \' . selected( $page->ID, $options[\'page_id\'] ) . \'>\' . $page->post_title . \'</option>\';
                            }
                        }
                        ?>
                    </select>
这将显示选择字段,但不确定如何使用此页面中选择的内容更新数据库选项数组字段。

1 个回复
最合适的回答,由SO网友:sakibmoon 整理而成

将代码更改为

register_setting( \'rex_plug_options\', \'rex_plug_options\', \'rex_plug_settings_validate\' );
add_settings_field(\'rex_plugbox_text_exit_pop_selected_pages\', \'Select Pages\', \'rex_plugbox_text_exit_pop_selected_pages\', \'rex_plug_box\', \'rex_plug_main_box\');
//with selectbox you cannot select multiple pages. If you need that try checkbox

function rex_plugbox_text_exit_pop_selected_pages(){
    global $rex_plug_options;
    if(!isset($rex_plug_options["rex_plugbox_text_exit_pop_selected_pages"]))   {
        $rex_plug_options["rex_plugbox_text_exit_pop_selected_pages"] = "";
    }
?>
    <select id="rex_plugbox_text_exit_pop_selected_pages" name="rex_plug_options[rex_plugbox_text_exit_pop_selected_pages]">
    <?php
    if( $pages = get_pages() ){
        foreach( $pages as $page ){
            echo \'<option value="\' . $page->ID . \'" \' . selected( $page->ID, $rex_plug_options["rex_plugbox_text_exit_pop_selected_pages"] ) . \'>\' . $page->post_title . \'</option>\';
        }
    }
    ?>
    </select>
<?php
}

结束

相关推荐

当有评论时,只在Single.php的页脚中有奇怪的空格吗?

我有一个weird problem 我不知道发生了什么。我真的希望这里的人能有线索,否则我就不知道该怎么办了。所以,我的页脚有一个奇怪的空格,就像这样:我已经做了很多测试,以下是我目前得到的结果:这ONLY happens in the single.php 当已经有评论时。这不会发生在任何其他页面或单曲中。php无注释。当有多个页面有注释时,也不会发生这种情况。好的,更多的测试。这似乎只发生在少数单曲上。php页面。我还不知道这些文章有什么其他文章没有的。可以肯定的是这篇文章:http://zoomin