WordPress : J’essaie d’utiliser l’API de personnalisation de thème mais j’obtiens toujours une erreur
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!
0 commentaire