在word ... wp-includes\class-wp-customize-control.php的第160行上的wordpress错误,同时为额外的函数添加了钩子

1 wordpress hook customization member-functions

在此先感谢您对此的任何帮助,错误调用成员函数check_capabilities()

与这一个陷入了困境!

目录布局:

  • '主题文件夹'
    • functions.php('主题'的主目录)
    • 的index.php
    • style.css文件
    • 函数文件夹(位于"主题文件夹"内)
      • customize.php

函数调用customize.php,如下所示:

<?php require_once('functions/customize.php'); ?>
Run Code Online (Sandbox Code Playgroud)

customize.php:

<?php
add_action('customize_register', 'adaptive_customize_register');
function adaptive_customize_register($wp_customize) {
//logo
$wp_customize->add_section('adaptive_logo', array(
'title' => __('Add Logo', 'adaptive_framework'), 
'description' => __('Upload your main logo, this shows in the header',      'adaptive_framework'), 
'priority' => '25'
));
    $wp_customize->add_setting('adaptive_custom_settings[add_logo]', array(
    'default' => 0,
    'type' => 'option'
));

$wp_customize->add_control('adaptive_custom_settings[display_logo]', array(
    'label' => __('Display logo?','adaptive_framework'),
    'section' => 'adaptive_logo',
    'settings' => 'adaptive_custom_settings[display_top_logo]',
    'type' => 'checkbox'
    ));
}



?>
Run Code Online (Sandbox Code Playgroud)

如果有人可以提供帮助,因为我得到如下错误:

Fatal error: Call to a member function check_capabilities() on a non-object in C:\xampp\htdocs\wordpress\wp-includes\class-wp-customize-control.php on line 160
Run Code Online (Sandbox Code Playgroud)

小智 6

add_control()的settings参数必须与add_setting()中定义的设置名称匹配.否则,控件将添加到未知设置,从而导致功能错误.

因此adaptive_custom_settings[display_top_logo]改为adaptive_custom_settings[add_logo]

    <?php
    add_action('customize_register', 'adaptive_customize_register');
    function adaptive_customize_register($wp_customize) {
    //logo
    $wp_customize->add_section('adaptive_logo', array(
        'title' => __('Add Logo', 'adaptive_framework'), 
        'description' => __('Upload your main logo, this shows in the header',         'adaptive_framework'), 
        'priority' => '25'
    ));
    $wp_customize->add_setting('adaptive_custom_settings[add_logo]', array(
        'default' => 0,
        'type' => 'option'
    ));

    $wp_customize->add_control('adaptive_custom_settings[display_logo]', array(
        'label' => __('Display logo?','adaptive_framework'),
        'section' => 'adaptive_logo',
        'settings' => 'adaptive_custom_settings[add_logo]',
        'type' => 'checkbox'
    ));
    }
    ?>
Run Code Online (Sandbox Code Playgroud)