web-dev-qa-db-ja.com

テーマカスタマイズAPIを使用しようとしていますが、エラーが発生し続けます。

これはエラーです:

161行目の/home/content/54/11786754/html/wp-includes/class-wp-customize-control.phpで、オブジェクト以外のオブジェクトに対してメンバー関数check_capabilities()を呼び出します。

これはfunctions.phpの私のコードです

function lmao_customizer_register($wp_customize) {

$wp_customize->add_section('lmao_colors',  array(

    'title' => __('colors', 'lmao'),
    'description' => 'modify the theme colors'

));



$wp_customize->add_setting('background_color',  array(

    'default' => '#fff',
    'type' => 'option' 

));

$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'background_color',  array(

    'label' => __('Edit Background Color', 'lmao'),
    'section' => 'lmao_colors',
    'settings' => 'background_color'

) ));

$wp_customize->add_setting('link_color',  array(

    'default' => '#fff',
    'type' => 'option' 

));

$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'link_color',  array(

    'label' => __('Edit link Color', 'lmao'),
    'section' => 'lmao_colors',
    'settings' => 'link_color'

) ));

$wp_customize->add_setting('link_background_color',  array(

    'default' => '#fff',
    'type' => 'option' 

));

$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'link_background_color',  array(

    'label' => __('Edit link background Color', 'lmao'),
    'section' => 'lmao_colors',
    'settings' => 'link_background_color'

) ));

$wp_customize->add_setting('link_background_color_hover',  array(

    'default' => '#fff',
    'type' => 'option' 

));

$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'link_background_color_hover',  array(

    'label' => __('Edit link background hover Color', 'lmao'),
    'section' => 'lmao_colors',
    'settings' => 'link_background_color_hover'

) ));

//start image settings
$wp_customize->add_section('lmao_images',  array(

    'title' => __('Images', 'lmao'),
    'description' => 'modify the theme images'


));

$wp_customize->add_setting('main_image',  array(

    'default' => 'http://hottraxstudioproductions.com/rawr/wp-content/uploads/2014/04/radio-logo.jpg',
    'type' => 'option' 

));

$wp_customize->add_control( new WP_Customize_image_Control($wp_customize, 'main_image',  array(

    'label' => __('Edit main image', 'lmao'),
    'section' => 'lmao_images',
    'settings' => 'main_image'

) ));


    //start copyright settings
$wp_customize->add_section('lmao_copyright',  array(

    'title' => __('Copyright_Details', 'lmao'),
    'description' => 'Edit copyright info'

));

$wp_customize->add_setting('Copyright_Details',  array(

    'default' => 'Copyright',
    'type' => 'option' 

));

$wp_customize->add_control('Copyright_Details',  array(

    'label' => __('Edit copyright info', 'lmao'),
    'section' => 'lmao_copyright',
    'settings' => 'copyright_details'

));



}



function lmao_css_customizer() {
?>

<style type="text/css">

    body { background-color: #<?php echo get_theme_mod('background_color'); ?    >;}

    nav ul li a {

        color: <?php echo get_theme_mod('link_color'); ?>;
        background-color: <?php echo get_theme_mod('link_background_color'); ?>;


    }

    nav ul li a:hover {

        background-color: <?php echo get_theme_mod('link_background_color_hover'); ?>;


    }


</style>

<?php



}



add_action('wp_head', 'lmao_css_customizer');
add_action('customize_register', 'LMAO_customizer_register');

さらに情報が必要な場合はお知らせください。

2
user50476

私はまだ比較的Wordpress Developmentに慣れていませんが、このコードはcustomizer.phpの "inc"フォルダ(あなたのアクティブなテーマのフォルダの中)にあるべきではありませんか?

また、私はコーデックスがこの特定のコードがライブプレビューのためだけのものであると言っているのを知っています、しかしそれを私のプロジェクトの1つに加えた後にそれは私の問題を直したようです。そのため、customizer_register関数に追加するセクションごとに、これらのgetコマンドを含める必要があるかもしれません。たとえば、コードの最初の部分の前に、次のものを含めてみてください。

function lmao_customize_register( $wp_customize ) {
    $wp_customize->get_setting( 'lmao_colors' )->transport='postMessage';
}
add_action( 'customize_register', 'testing_customize_register' );

それからセクションを追加することから始めるでしょう

function lmao_customizer_register($wp_customize) {
    $wp_customize->add_section('lmao_colors',  array(
        'title' => __('colors', 'lmao'),
        'description' => 'modify the theme colors'
));

    $wp_customize->add_setting('background_color',  array(
        'default' => '#fff',
        'type' => 'option' 
));

    $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'background_color',  array(

        'label' => __('Edit Background Color', 'lmao'),
        'section' => 'lmao_colors',
        'settings' => 'background_color'

) ));
}

それが役に立つことを願っています。私はまだ自分自身が新しいと言ったように、申し訳ありませんが申し訳ありませんが、回答をしないでください。

頑張って!

1
starryVere

それはたぶん単なるタイプミスです。

それはここです

//start copyright settings
$wp_customize->add_section('lmao_copyright',  array(

'title' => __('Copyright_Details', 'lmao'),
'description' => 'Edit copyright info'

));

$wp_customize->add_setting('Copyright_Details',  array(

'default' => 'Copyright',
'type' => 'option' 

));

$wp_customize->add_control('Copyright_Details',  array(

'label' => __('Edit copyright info', 'lmao'),
'section' => 'lmao_copyright',
'settings' => 'copyright_details'

));

Copyright_detailsの大文字と小文字が異なることに注意してください。

$wp_customize->add_setting('Copyright_Details',  array

add_controlセクションの設定よりも:

'settings' => 'copyright_details'

両方の設定は同じでなければなりません、そうでなければあなたが得た機能エラーは引き起こされます。

0