主题选项页面中的网站标题和标语

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

我正在使用Options Framework Theme 将选项页组合在一起。我为其构建此页面的用户希望能够直接从此页面编辑一些设置,包括网站标题和标语。

Concept:

enter image description here

Options.php:

$options[] = array(
    \'name\' => __(\'Site Title\', \'options_framework_theme\'),
    \'desc\' => __(\'The name of your site.\', \'options_framework_theme\'),
    \'id\' => \'title\',
    \'std\' => \'PHP CODE FOR SITE TITLE HERE ...\',
    \'class\' => \'medium\',
    \'type\' => \'text\');
是否有方法在文本字段中执行此操作(添加他们自己的网站标题和标语)。例如,单击保存选项按钮将其输出到网站前端,并在WP API设置>常规设置子菜单页中显示更新版本?

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

该框架提供了一个过滤器,用于验证optionsframework_validate功能<仅供参考,以下是文件中的相关部分wp-content/themes/your-theme/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 */
因此,考虑到我们在文件中有以下选项wp-content/themes/your-theme/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\');
并且在wp-content/themes/your-theme/functions.php, 我们过滤text 输入类型(of_sanitize_ + text)以及它是否与我们定义的ID匹配(blognameblogdescription, 就像在常规设置中一样,它将更新具有相同id的站点选项。

请注意,这不是另一种方式:在Settings -> General 不会反映在主题选项页面中

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

结束

相关推荐

Bones_Comments()和Comments.php有什么不同

我开始使用Bones HTML5 Wordpress入门主题,但与Bones中的一些内置功能有点混淆,有function bones_comments() 在函数中。php,但我在文件中找不到使用或调用此函数的任何地方。我看了一下函数中的代码,它看起来像是一些输出wordpress注释的代码,但也有注释。wordpress中comment\\u template()的php。所以真的搞不明白为什么bones添加了bones\\u comments()函数而没有使用它。bones\\u comments()