wake-up-neo.net

customise_register mit Mehrere Steuerelemente/Einstellungen - Wie bekomme ich Werte?

PHP-Neuling hier, und ich habe dies auf meiner functions.php

function mcs_social($wp_customize){

    $wp_customize->add_section('mcs_social_handle', array(
        'title'    => __('Social Network Handles', 'mcs'),
        'description' => 'i.e., Acme Company\'s Facebook is https://facebook.com/acmecompany then enter "acmecompany"',
        'priority' => 70,
    ));

    //  =============================
    //  = Facebook                  =
    //  =============================
    $wp_customize->add_setting('mcs_fb_op', array(
        'default'        => '',
        'capability'     => 'edit_theme_options',
        'type'           => 'option',

    ));

    $wp_customize->add_control('mcs_fb', array(
        'label'      => __('Facebook Handle', 'mcs'),
        'section'    => 'mcs_social_handle',
        'settings'   => 'mcs_fb_op',
    ));

        //  =============================
    //  = Twitter                  =
    //  =============================
    $wp_customize->add_setting('mcs_tw_op', array(
        'default'        => '',
        'capability'     => 'edit_theme_options',
        'type'           => 'option',

    ));

    $wp_customize->add_control('mcs_tw', array(
        'label'      => __('Twitter Handle', 'mcs'),
        'section'    => 'mcs_social_handle',
        'settings'   => 'mcs_tw_op',
    ));

    //  =============================
    //  = RSS                       =
    //  =============================
     $wp_customize->add_setting('mcs_rs_op', array(
        'default'        => 'rss2_url',
        'capability'     => 'edit_theme_options',
        'type'           => 'option',

    ));
    $wp_customize->add_control( 'mcs_rs', array(
        'settings' => 'mcs_rs_op',
        'label'   => 'RSS Feed',
        'section' => 'mcs_social_handle',
        'type'    => 'select',
                'choices'       => array(
                    'rdf_url'       => 'RDF/RSS 1.0 feed',
                    'rss2_url'  => 'RSS 2.0 feed',
                    'atom_url'  => 'Atom feed',
        ),
    ));
}

//add
add_action( 'customize_register', 'mcs_social' );

Wie Sie sehen können, ist es eine krasse Kopie des Beispiels im WordPress Codex .

Das funktioniert perfekt. Wenn ich zu Darstellung -> Anpassen gehe, sehe ich den Abschnitt für soziale Handles und kann Textfelder hinzufügen und speichern und aus der Auswahl auswählen.

Mein Problem ist jetzt, ich kann nicht scheinen, die Werte zu ergreifen, um in den Schablonen zu verwenden. Ich habe andere Customizer-Bereiche mit 1 Einstellung im Customizer (d. H. Das Logo-Bild) und sie funktionieren nur in Ordnung, aber wenn ich das gleiche get_theme_mod () für die "sozialen" Einstellungen verwende, wird nichts angezeigt.

<div class="blue-social-box">
          <h5>Follow us on:</h5>
          <ul>
          <?php if ( get_theme_mod( 'mcs_fb_op' ) ) : ?>
            <li>
              <figure><a href="https://www.facebook.com/<?php echo esc_url( get_theme_mod( 'mcs_fb_op' ) ); ?>" target="_blank"><img src="<?php echo $fbImg; ?>" /></a></figure>
              <label><a href="https://www.facebook.com/<?php echo esc_url( get_theme_mod( 'mcs_fb_op' ) ); ?>" target="_blank">Facebook</a></label>
            </li>
          <?php elseif ( get_theme_mod( 'mcs_fb_op' ) ) : ?>
                        <li>
              <figure><a href="https://www.Twitter.com/<?php echo esc_url( get_theme_mod( 'mcs_tw_op' ) ); ?>" target="_blank"><img src="<?php echo $twImg; ?>" /></a></figure>
              <label><a href="https://www.Twitter.com/<?php echo esc_url( get_theme_mod( 'mcs_tw_op' ) ); ?>" target="_blank">Twitter</a></label>
            </li>
          <?php 
                    elseif ( get_theme_mod( 'mcs_rs_op' ) ) : 
                    $rssType = esc_url(get_theme_mod('mcs_rs_op'));
                        ?>
                        <li>
              <figure><a href="<?php bloginfo($rssType); ?>" target="_blank"><img src="<?php echo $rsImg; ?>" /></a></figure>
              <label><a href="<?php bloginfo($rssType); ?>" target="_blank">RSS Feed</a></label>
            </li>
                    <?php else : //Nothing ?>
          <?php endif; ?>
          </ul>
        </div>

Die Dokumentation enthält keine hilfreichen Informationen. Wie können diese Werte korrekt erfasst werden?

3
vm7488

Ihr Code ist außer in add_setting gut. Sie haben den Parameter option für type zugewiesen. Es wird eine separate Option für jedes Feld gespeichert. Wenn Sie theme_mod verwenden, wird dies Ihr Problem lösen.

'type' => 'theme_mod',

4
Nilambar