Champ personnalisé dans une sidebar (Créer un compte)

  • WordPress :4.6.1
  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #1609178
    silence
    Participant
    Initié WordPress
    29 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL :
    • Thème utilisé : uncode
    • Extensions en place :
    • Nom de l’hébergeur : ovh
    • Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour,

    Je souhaiterais intégrer  des champs personnalisés avec ACF dans une sidebar. Dans le fichier sidebar.php il y a ce code :

    <?php
    /**
    * The sidebar containing the main widget area.
    *
    * @package uncode
    */

    $metabox_data = get_post_custom($post->ID);
    $sidebar = (isset($metabox_data['_uncode_page_sidebar'][0])) ? 'uncode-' . $metabox_data['_uncode_page_sidebar'][0] : 'sidebar-1';

    if ( ! is_active_sidebar( $sidebar ) ) {
    return;
    }

    ?>

    <div id="secondary" class="widget-area" role="complementary">
    <?php dynamic_sidebar( $sidebar ); ?>

    </div><!-- #secondary -->

    et je voudrais mettre ce code ACF

    <!-- CONTENU ACF -->
    <?php
    // Contrôler si ACF est actif
    if ( !function_exists('get_field') ) return;
    ?>

    <ul>
    <li><strong>Année de sortie: </strong><?php the_field('partenaire'); ?></li>
    <li><strong>Nombre de visiteurs: </strong><?php the_field('gn_nombr_visiteurs'); ?> personnes</li>
    <li><strong>Commentaire: </strong><?php the_field('gn_comment'); ?></li>
    </ul>


    <!-- CONTENU ACF -->

    Mon problème est que je ne sais pas comment faire pour l’intégrer, une idée ?

    Merci

    #1609193
    sebastienserre
    Participant
    Maître WordPress
    816 contributions
    <?php
    /**
    * The sidebar containing the main widget area.
    *
    * @package uncode
    */

    $metabox_data = get_post_custom($post->ID);
    $sidebar = (isset($metabox_data['_uncode_page_sidebar'][0])) ? 'uncode-' . $metabox_data['_uncode_page_sidebar'][0] : 'sidebar-1';

    if ( ! is_active_sidebar( $sidebar ) ) {
    return;
    }

    ?>

    <div id="secondary" class="widget-area" role="complementary">

    <!-- CONTENU ACF AVANT les Widgets-->
    <?php
    // Contrôler si ACF est actif
    if ( !function_exists('get_field') ) return;
    ?>

    <ul>
    <li><strong>Année de sortie: </strong><?php the_field('partenaire'); ?></li>
    <li><strong>Nombre de visiteurs: </strong><?php the_field('gn_nombr_visiteurs'); ?> personnes</li>
    <li><strong>Commentaire: </strong><?php the_field('gn_comment'); ?></li>
    </ul>


    <!-- CONTENU ACF -->


    <?php dynamic_sidebar( $sidebar ); ?>

    <!-- CONTENU ACF AVANT les Widgets-->
    <?php
    // Contrôler si ACF est actif
    if ( !function_exists('get_field') ) return;
    ?>

    <ul>
    <li><strong>Année de sortie: </strong><?php the_field('partenaire'); ?></li>
    <li><strong>Nombre de visiteurs: </strong><?php the_field('gn_nombr_visiteurs'); ?> personnes</li>
    <li><strong>Commentaire: </strong><?php the_field('gn_comment'); ?></li>
    </ul>


    <!-- CONTENU ACF -->

    </div><!-- #secondary -->

    A toi d’adapter si tu le veux avant ou après les widgets. Par contre pour ne pas afficher des champs vide si l’info n’est pas renseignée, j’aurais mis des conditions:

    		<ul>
    <?php if ( !empty(get_field('partenaire') {?>

    <li><strong>Année de sortie: </strong><?php the_field('partenaire'); ?></li>

    <?php } ?>
    // idem pour les autres li

    #1609237
    silence
    Participant
    Initié WordPress
    29 contributions

    Ok c’est super ! Merci beaucoup Sébastien 🙂

    Une autre question. Toujours avec ACF, j’ai des champs que je dois ajouter aux articles, mais il faudrait que je puisse les écrire à des endroits précis de l’article. Entre deux paragraphes par exemple. L’éditeur des articles de wordpress ne permet pas d’écrire en php malheureusement…

    J’ai essayer les shorcodes aussi, mais je ne sais pas comment recuperer les champs de ACF…

     

    function fonpartenaire( $atts ) {
    return '<?php the_field('partenaire'); ?>';
    }
    add_shortcode( 'partenaire', 'fonPartenaire' );

    #1609289
    sebastienserre
    Participant
    Maître WordPress
    816 contributions

    Au milieu d’un artcile ca ne va pas etre possible par contre le rajouter au début ou a la fin de the_content via le filtre the_content c’est possible

    #1609294
    sebastienserre
    Participant
    Maître WordPress
    816 contributions

    Et pour revenir sur ton code, a la ligne 2, ne réouvre pas ton php tu est deja dedans…

    aussi

    the_field()

    est en fait un

    echo get_the_field()

    donc si tu return the_field, ensuite tu feras un echo en trop…

     

    Je ne sais pas si je suis clair… il commence a etre tard!

    #1609367
    silence
    Participant
    Initié WordPress
    29 contributions

    Un truc comme ça ?

     

    // champ perso
    function fonpartenaire( $atts ) {
    echo get_the_field('partenaire');
    }
    add_shortcode( 'partenaire', 'fonPartenaire' );

    #1609484
    silence
    Participant
    Initié WordPress
    29 contributions

    ça à l’air de tout faire planter quand je mets ce code dans le fichier function.php ….

    #1609540
    sebastienserre
    Participant
    Maître WordPress
    816 contributions
    // champ perso
    function fonpartenaire( $atts ) {
    echo get_the_field('partenaire');
    }
    add_shortcode( 'partenaire', 'fonPartenaire' );

    return get_the_field ?

    Et si tu fais un

     

8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.