HELMS Jean-Sebastien (Créer un compte)

Toutes mes réponses sur les forums

2 sujets de 31 à 32 (sur un total de 32)
  • Auteur
    Messages
  • en réponse à : [Résolu] CRÉATION SHORCODE AVEC INCLUDE PHP #1931839
    JeanSeb – Long Watch Studio
    Participant
    Initié WordPress
    32 contributions

    Un dernier point dans ton code « jesuisperdu.php », pourquoi faire deux déclarations de $current_user ?

    Optimise le code en faisant :

    <?php
    global $current_user;
    if( isset($current_user) )
    {
    echo "{$current_user->user_login}<br/>{$current_user->user_url}";
    }

    en réponse à : [Résolu] CRÉATION SHORCODE AVEC INCLUDE PHP #1931543
    JeanSeb – Long Watch Studio
    Participant
    Initié WordPress
    32 contributions

    Bonjour leboncoin,

    Reprenons pas à pas ton exemple.

    Un shortcode va remplacer un « code » par du contenu.

    Ce contenu doit pouvoir s’afficher (je pense que c’est le but) ou s’exécuter en fond.

    Donc, ton exemple est le suivant :

    function jesuisperdu(){ 
    return'jesuisperdu.php';
    }
    add_shortcode('perdu','jesuisperdu');

    Ce qui implique que le shortcode voulu est [perdu] et on fait appel à la fonction ‘jesuisperdu’.

    Pour retourner un contenu d’un php, il faut l’encapsuler dans un include (comme l’a déjà dit yrdna)

    Si ton jesuisperdu.php ne contient que du texte, ta fonction doit donc s’écrire ainsi :

    return include(‘jesuisperdu.php’);

    par contre, si il y a une exécution de code avec des « echo » (par exemple), il est préférable d’encapsuler le include comme l’a indiqué pifoux.

    Ton code deviendra donc :

    ob_start();
    include('jesuisperdu.php');
    $content = ob_get_clean();
    return $content;

    ob_start() permet de capturer tout ce qui devrait normalement s’afficher à l’écran directement. ob_get_clean() permet de finir la capture, de vider le buffer mémoire et de retourner ce contenu dans $content.

    J’espère que ces quelques explications complémentaires te seront utiles.

2 sujets de 31 à 32 (sur un total de 32)