用DIR文件填充DropdWon,保存数值并将其保持为“选中”

时间:2016-11-08 作者:Daniel

我有一个下拉列表,它由文件夹的内容填充。当我保存页面时,下拉菜单将重置,并且不显示所选图像。同一页上的其他选项(颜色/文本..)请保存并保留该值。

有什么想法吗?我试过使用“selected”功能,但它不能以我使用它的方式工作。

谢谢大家!

Code:

/*create the field*/

add_settings_field( 
    \'psg_dyn_select_1\', 
    __( \'Settings field description\', \'wordpress\' ), 
    \'psg_dyn_select_1_render\', 
    \'pluginPage\', 
    \'psg_pluginPage_section\' 
);

/*output the field*/

function psg_dyn_select_1_render ( ) {

$options = get_option( \'psg_settings\' );
?>
<select name= \'psg_settings[psg_dyn_select_1]\'>
   <?php foreach ( glob( plugin_dir_path( __FILE__ ) . "assets/images/*" ) as $filename){
   $filename = basename($filename);
   echo "<option value=\'" . $filename . "\'>".$filename." </option>";}?>     
</select> 

1 个回复
SO网友:Jen

您需要向选项输出中添加一个“selected”值,以便html显示保存在psg\\U设置中的值。

类似这样:

function psg_dyn_select_1_render ( ) {
    $options = get_option( \'psg_settings\' );
    $files = glob( plugin_dir_path( __FILE__ ) . "assets/images/*" );
    ?>
    <select name= \'psg_settings[psg_dyn_select_1]\'>
    <?php foreach ($files as $filename){
        $filename = basename($filename);
        $selected = ($filename == $options[\'psg_dyn_select_1\']) ? \'selected="selected"\' : \'\';
        echo "<option value=\'" . $filename . "\' " . 
            $selected . ">".$filename." </option>";
    }?> 
    </select>
}
如果这不起作用,那么您需要调试$options$options[\'psg_dyn_select_1\'] 与您选择的下拉列表中的输出进行比较($filename).

相关推荐

WP-ADMIN:“对不起,您不能访问此页面。”

两周后不使用我们的WP站点,登录/wp-admin/ 出现白屏错误:抱歉,不允许您访问此页面。我有:重命名plugins 到plugins.temp.通过phpMyAdmin创建了一个新的管理员用户。新用户已user_meta 的作用a:1:{s:13:"administrator";s:1:"1";}.</已重命名themes 到themes.temp.</删除核心WordPress文件,并替换为新上载的文件</已替换.htaccess 使用默认