在动态调用的帮助器函数的名称中使用变量

时间:2017-06-28 作者:tx291

我正在尝试向我的“设置”页面添加一些功能,这样,如果在自定义帖子的元框中添加了新的季节,则会在“设置”中生成一个新字段,允许用户向该季节添加标题和描述。这部分工作正常,但当我尝试保存信息时,来自一个季节的信息会跨所有字段保存,因为我的字段对应于相同的辅助函数

与其硬编码第1、2、3季等单独的输入字段,并为每个字段硬编码适当的助手函数,我尝试在循环中这样做:

for($k=1; $k<=$numseasons; $k++){
        $funcTitle = get_option(\'show_season_title_$k\');
        $funcDesc = get_option(\'show_season_desc_$k\');


        echo "<label for=\'show_season_title_$k\'>Season: $k</label><br>
        <input type=\'text\' id=\'show_season_title_$k\' name=\'show_season_title_$k\' value=\'$funcTitle\'><br>

        <label for=\'show_season_desc_$k\'> Season Description:</label><br>
        <textarea id=\'show_season_desc_$k\' name=\'show_season_desc_$k\'>$funcDesc</textarea>";
    }
在我的文件顶部,我有:

add_option( \'show_season_title_1\', \'\');
add_option( \'show_season_desc_1\', \'\');
add_option( \'show_season_title_2\', \'\');
add_option( \'show_season_desc_2\', \'\');
以及:

register_setting( \'showsettings\', \'show_season_title_1\' ); 
register_setting( \'showsettings\', \'show_season_desc_1\' ); 
register_setting( \'showsettings\', \'show_season_title_2\' ); 
register_setting( \'showsettings\', \'show_season_desc_2\' );
然而,每当我在输入字段中用文本保存设置时,文本不会保存(经检查,“值”字段和文本区域字段没有值)。此外,如果我尝试在循环中回显$funcTitle和$funcDesc,我什么也得不到,因此我想知道问题是否在于调用包含$k变量的函数。

如果有人有任何建议,我将不胜感激!非常感谢。

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

get_option(\'show_season_title_\' . $k);
我想,我现在还没有办法去测试,但它应该会起作用。

结束

相关推荐

Functions.php中的入队样式

这对我没用functions.php: if( is_page_template( \'template-flat.php\' ) ) { function flatsome_scripts() { wp_enqueue_style( \'flatsome-style\', get_template_directory_uri() .\'/flatash/css/foundation.css\', array(), \'2.1\', \'all\'); }