WordPress : J’essaie d’utiliser l’API de personnalisation de thème mais j’obtiens toujours une erreur

Publié par Jean-Michel le

C’est l’erreur :

Appel à une fonction membre check_capabilities() sur un non-objet dans /home/content/54/11786754/html/wp-includes/class-wp-customize-control.php à la ligne 161

et ceci est mon code dans le 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');

S’il vous plaît laissez-moi savoir si vous avez besoin de plus d’informations…

Solution n°1 trouvée

C’est très probablement juste une faute de frappe.

C’est ici

//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'

));

Notez que copyright_details a une casse différente dans :

$wp_customize->add_setting('Copyright_Details',  array

que dans les paramètres de la section add_control :

'settings' => 'copyright_details'

Les deux paramètres doivent être les mêmes, sinon l’erreur de capacité que vous avez obtenue sera déclenchée.

Solution n°2 trouvée

Je suis encore relativement nouveau dans le développement WordPress, mais ce code ne devrait-il pas être dans customizer.php, dans le dossier « inc » (qui se trouverait dans le dossier de votre thème actif) ?

De plus, je sais que le codex indique que ce code particulier est uniquement destiné à l’aperçu en direct, mais après l’avoir ajouté à l’un de mes projets, il a semblé résoudre mon problème. Vous devrez donc peut-être inclure ces commandes get pour chaque section que vous ajoutez dans la fonction customizer_register. Par exemple, avant le premier bit de votre code, essayez d’inclure :

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

Ensuite, vous commencerez par ajouter la section

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'

) ));
}

J’espère que c’est utile. Je suis désolé si ce n’est pas le cas, comme je l’ai dit, je suis encore nouveau moi-même, mais je voulais essayer d’apporter une réponse, car il semble que cette question soit postée depuis un moment sans réponse.

Bonne chance!

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *