web-dev-qa-db-de.com

probleme mit get_option

Hallo, als erstes tut mir mein schlechtes Englisch leid.

Ich habe nach einem Tutorial gesucht, um den Customizer in WordPress für ein neues Thema zu verwenden. Aber ich habe einige Probleme mit get_option, ich habe keine Rückkehr. Ich habe meinen Code richtig unten platziert.

<?php
//==================================================
//============= Chargement des scripts =============
//==================================================

define('schweitzer_ver', '0.2');


// Chargement front end
function schweitzer_scripts(){

    // Chargement des styles
    //wp_enqueue_style( 'styles-bootstrap', get_template_directory_uri() . '/css/bootstrap.min.css',
    //  '', schweitzer_ver, 'all' );
    wp_enqueue_style( 'styles', get_template_directory_uri() . '/style.css',
        array(), schweitzer_ver, 'all' );
    wp_enqueue_style( 'menu', get_template_directory_uri() . '/css/menu.css',
        array(), schweitzer_ver, 'all' );


    // Chargement des scripts
    wp_enqueue_script( 'schweitzer_script', get_template_directory_uri() . '/js/schweitzer.js',
        array('jquery'), schweitzer_ver, true );
    wp_enqueue_script( 'menu_script', get_template_directory_uri() . '/js/menu.js',
        array('jquery'), schweitzer_ver, true );
    }

    // Intégration et mise en forme du menu
    function clean_custom_menus() {
        $menu_name = 'primary';
        if (($locations = get_nav_menu_locations()) && isset($locations[$menu_name])) {
            $menu = wp_get_nav_menu_object($locations[$menu_name]);
            $menu_items = wp_get_nav_menu_items($menu->term_id);
            // $menu_list = '<nav>' ."\n";
            $menu_list .= "\t\t\t\t". '<ul>' ."\n";

        foreach ((array) $menu_items as $key => $menu_item) {
            $title = $menu_item->title;
            $url = $menu_item->url;
            $menu_list .= "\t\t\t\t\t". '<li><a href="'. $url .'">'. $title .'</a></li>' ."\n";
            }

        $menu_list .= "\t\t\t\t". '</ul>' ."\n";
        $menu_list .= "\t\t\t". '</nav>' ."\n";
        }

        else {
        $menu_list = 'Pas de menu défini';
        }
    echo $menu_list;
}



add_action( 'wp_enqueue_scripts', 'schweitzer_scripts', 'clean_custom_menus');


//==================================================
//================= Configuration ==================
//==================================================

function schweitzer_setup ()
{

    // Active gestion des menus (avec plusieurs positions)
    register_nav_menus(array('primary'=>'principal'));

    // support des vignettes
    add_theme_support('post-thumbnails');

    // Retire générateur de version (sécurité !)
    remove_action('wp_head', 'wp_generator');

    // Retire guillemets français
    remove_filter ('the_content', 'wptexturize');

    // Support du titre géré par WP (meilleur SEO)
    add_theme_support('title-tag');

}

    add_action( 'after_setup_theme', 'schweitzer_setup' );

//==================================================
//================ Options du theme ================
//==================================================

function schweitzer_customizer()
{

    //===== Variables =====
    // Couleur du menu
    $menu_color = get_option('menu_color','#2a2a2a');

    // Transparence du menu
    $menu_opacity = get_option('menu_opacity','0.5');

    // Nombre d'éléments dans le menu
    // $menu_element = get_option( 'menu_element' );

    ?>
    <style>
        nav li:nth-of-type(1){background-color: <?php echo $menu_color; ?>; opacity: <?php echo $menu_opacity; ?>}
        nav li:nth-of-type(2){background-color: <?php echo $menu_color; ?>; opacity: <?php echo $menu_opacity; ?>}
        nav li:nth-of-type(3){background-color: <?php echo $menu_color; ?>; opacity: <?php echo $menu_opacity; ?>}
        nav li:nth-of-type(4){background-color: <?php echo $menu_color; ?>; opacity: <?php echo $menu_opacity; ?>}
        nav li:nth-of-type(5){background-color: <?php echo $menu_color; ?>; opacity: <?php echo $menu_opacity; ?>}
    </style>
    <?php

}
    add_action( 'wp_head', 'schweitzer_customizer' );




function schweitzer_customize_register( $wp_customize ) {

        $wp_customize->add_section( 'menu_options' , array(
        'title' =>  'Réglage du Menu',
    ) );

    $wp_customize->add_setting( 'menu_color' , array(
        'default' => '#000',
        'sanitize_callback' => 'sanitize_hex_color',
    ) );

    $wp_customize->add_setting( 'menu_opacity' , array(
        'default' => '0.5',
    ) );

    $wp_customize->add_control(
        new WP_Customize_Color_Control($wp_customize,
            'menu_color_selection',
            array('label' => 'Choix de la couleur',
                'section' => 'menu_options',
                'settings' => 'menu_color',
        )
    ));

    $wp_customize->add_control(
        'menu_opacity_selection',
        array(
            'label'    => __( 'Transparence', 'schweitzer' ),
            'section'  => 'menu_options',
            'settings' => 'menu_opacity',
            'type'     => 'radio',
            'choices'  => array(
                '0'  => '0% (opaque)',
                '0.1' => '10 %',
                '0.2'  => '20 %',
                '0.3' => '30 %',
                '0.4'  => '40 %',
                '0.5' => '50 %',
                '0.6'  => '60 %',
                '0.7' => '70 %',
                '0.8' => '80 %',
                '0.9'  => '90 %',
                '1' => '100 % (transparent)',),
        )
    );
}
add_action( 'customize_register', 'schweitzer_customize_register' );

function schweitzer_register_settings() {
    register_setting( 'menu_settings', 'my_option_name', 'intval' );
}

add_action( 'admin_init', 'schweitzer_register_settings' );

Das ist meine functions.php. Das Backend scheint gut zu funktionieren, aber es gibt keine Spur meiner "menu_color" -Optionen. Wp_head ist in der index.php.

Wenn Sie mir helfen können, bin ich Ihnen sehr dankbar.

2
GoldoKnack

Ich habe die Lösung in einem anderen Forum gefunden, aber wenn jemand das gleiche Problem hat wie ich, ist hier die Lösung:

Verwenden Sie für Designoptionen, die mit $ wp_customize geändert wurden, get_theme_mod () anstelle von get_option (), um den Wert abzurufen.

1
GoldoKnack