将博客名称和博客描述链接到选项框架

时间:2012-12-28 作者:user1752759

我正在创建一个主题选项页面,我为其构建此页面的用户希望能够直接从此页面编辑一些设置,包括站点标题和标语。

brasofilo, 我有以下。。。

/inc/options-framework.php:

/**
 * Validate Options.
 *
 * This runs after the submit/reset button has been clicked and
 * validates the inputs.
 */
function optionsframework_validate( $input ) {
/* code */
    $clean[$id] = apply_filters( \'of_sanitize_\' . $option[\'type\'], $input[$id], $option );
/* code */

options.php:

$options[] = array(
    \'name\' => __(\'Input Text Mini\', \'options_framework_theme\'),
    \'desc\' => __(\'A mini text input field.\', \'options_framework_theme\'),
    \'id\' => \'blogname\',
    \'std\' => \'Default\',
    \'class\' => \'mini\',
    \'type\' => \'text\');

$options[] = array(
    \'name\' => __(\'Input Text\', \'options_framework_theme\'),
    \'desc\' => __(\'A text input field.\', \'options_framework_theme\'),
    \'id\' => \'blogdescription\',
    \'std\' => \'Default Value\',
    \'type\' => \'text\');

functions.php:

add_filter( \'of_sanitize_text\', \'wpse_77233_framework_to_settings\', 10, 2 );

function wpse_77233_framework_to_settings( $input, $option )
{
    if( \'blogname\' == $option[\'id\'] )
        update_option( \'blogname\', sanitize_text_field( $input ) );

    if( \'blogdescription\' == $option[\'id\'] )
        update_option( \'blogdescription\', sanitize_text_field( $input ) );

    return $input;
}
如果用户在主题选项页面中添加自己的博客名/网站标题和博客描述/标语,然后单击保存按钮,它将相应地将信息输出到网站前端,并更新WP API设置>常规菜单中每个文本字段中的信息。

Theme Options:

enter image description here

Settings > General:

enter image description here

但是,如果用户以其他方式进行任何更改(在WP API设置常规菜单中),信息将输出到网站前端,但不会更新选项框架/主题选项页面中的字段。

由于我对PHP相当陌生,而且这一切都是如何工作的,我想知道我如何才能以另一种方式工作呢?

1 个回复
SO网友:Milo

我假设您的选项保存在一个数组中,位于一个键下,而实际上不在WP使用的本机选项中。您可以将操作添加到update_option_{$option_name} 在您自己的选项面板外更新选项时更新选项famework条目。您必须弄清楚您自己的选项保存在哪个键下。

结束