IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Déplacer la gallery de Wordpress dans le header


Sujet :

WordPress PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut Déplacer la gallery de Wordpress dans le header
    Tout est dit dans le titre, je souhaite déplacer la "gallery" par défaut de Wordpress dans mon header.
    Ajouter un média > Créer une galerie > Insérer...

    J'ai personnalisé la galerie avec un hook, à présent je souhaite la déplacer dans le header.
    J'ai bien ajouté le shortcode de la "gallery" dans le header, ca fonctionne mais je l'ai 2 fois, 1 fois dans le header et 1 fois dans le entry-content, normal....

    Besoin de vos lumières

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    (volià pour la lumière...)

    Supprime le hook dans le entry-content... ?

  3. #3
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    De quelle manière ?
    Mon fichier functions possède une fonction customFormatGallery() avec un appel :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    add_filter('post_gallery','customFormatGallery',10,2);

    Dans mon header pour l'afficher j'ai juste ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo do_shortcode( '[gallery]' ); ?>
    Je ne sais pas où se trouve l'entry-content avec l'appel de la galerie , j'ai cherché mais pas trouvé, de toute manière il ne faudrait pas y toucher car sinon à la moindre maj, ca pètera. L'idéal serait de pouvoir afficher la galerie dans le header en la désactivant dans l'entry-content.

  4. #4
    Invité
    Invité(e)
    Par défaut
    1- Quand on veut modifier un thème WordPress, on crée un theme-enfant.
    Ça évite justement les soucis de mises à jour.
    L'as-tu fait ?

    2- On ne peut pas dire grand chose de plus : on ne connait ni le thème, ni la galerie utilisés...
    (et je ne suis pas spécialiste...)
    Dernière modification par Invité ; 13/04/2018 à 13h54.

  5. #5
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    1- Quand on veut modifier un thème WordPress, on crée un theme-enfant.
    Ça évite justement les soucis de mises à jour.
    L'as-tu fait ?
    Oui évidemment
    2- On ne peut pas dire grand chose de plus : on ne connait ni le thème, ni la galerie utilisés...
    (et je ne suis pas spécialiste...)
    Le thème justement il est personnel je le développe, la galerie c'est celle de Worpdress par défaut...

    J'ai fini par réussir, je donne la solution espérant que ça puisse servir à d'autres.

    L'idée est de faire 2 fonctions, une qui récupère le premier shortcode de la gallery dans le content
    la deuxième qui efface ce même shortcode.
    Functions.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    // Return first gallery shortcode
    function get_shortcode_gallery ( $post = 0 ) {
        if ( $post = get_post($post) ) {
            $post_gallery = get_post_gallery($post, false);
            if ( ! empty($post_gallery) ) {
                $shortcode = "[gallery";
                foreach ( $post_gallery as $att => $val ) {
                    if ( $att !== 'src') {
                        if ( $att === 'size') $val = "full";        // Set custom attribute value
                        $shortcode .= " ". $att .'="'. $val .'"';   // Add attribute name and value ( attribute="value")
                    }
                }
                $shortcode .= "]";
                return $shortcode;
            }
        }
    }
    // Deletes first gallery shortcode and returns content
    function strip_shortcode_gallery( $content ) {
        preg_match_all( '/'. get_shortcode_regex() .'/s', $content, $matches, PREG_SET_ORDER );
        if ( ! empty( $matches ) ) {
            foreach ( $matches as $shortcode ) {
                if ( 'gallery' === $shortcode[2] ) {
                    $pos = strpos( $content, $shortcode[0] );
                    if ($pos !== false)
                        return substr_replace( $content, '', $pos, strlen($shortcode[0]) );
                }
            }
        }
        return $content;
    }

    Ensuite dans la page correspondante on remplace le content <?php the_content(); ?> par :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $content = strip_shortcode_gallery( get_the_content() );                                        // Delete first gallery shortcode from post content
    $content = str_replace( ']]>', ']]&gt;', apply_filters( 'the_content', $content ) );            // Apply filter to achieve the same output that the_content() returns
    echo $content;
    il ne reste plus qu'à placer le shortcode à l'endroit voulu :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo do_shortcode( get_shortcode_gallery() ); ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. redefinir une fonction dans un header
    Par ghostdogpr dans le forum C
    Réponses: 5
    Dernier message: 31/10/2005, 03h25
  2. [TListView] Ajouter un icône de tri dans le header
    Par phplive dans le forum Composants VCL
    Réponses: 1
    Dernier message: 25/09/2005, 13h07
  3. Comment se déplacer avec la touche tab dans un dbGrid ?
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/09/2005, 15h36
  4. [Mail] Subject dans le header
    Par Tchinkatchuk dans le forum Langage
    Réponses: 1
    Dernier message: 07/09/2005, 09h24
  5. [MFC] image dans un header de CListCtrl
    Par tut dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2003, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo