Parse de the_content anarchique (Créer un compte)

  • Statut : non résolu
3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #507647
    liandri
    Membre
    Initié WordPress
    2 contributions

    Bonjour à tous !

    Je suis en pleine folie de développement de mon propre plugin. N’ayant que très peu de culture wordpress dans le développement (je suis plus habitué au dev poo), j’ai un peu du mal à cerner les résultats en sortie de code des fonctions proposées par le codex.

    Mon problème est le suivant :
    Sur une page référencée dans les pages wordpress (donc connue par sa référence), je souhaite faire un parse de son contenu pour remplacer mes tags « maisons » par le contenu de d’autres pages connues elles-aussi.

    Un exemple de mon code sera certainement plus explicite. Voici ce que j’ai et qui fonctionne pour la partie parse du contenu :

    contenu de ma page :

    [tag1][tag2]

    add_action(‘the_content’, ‘wp_display_ma_page’);

    function wp_display_ma_page($content) {
    if( (int)$post->ID != 123) // 123 est l’id de ma page
    return $content;

    $idPage1 = 124; // 124 est l’id d’une page ressource
    $idPage2 = 125; // 125 idem
    $tag1 = get_page($idPage1);
    $tag2 = get_page($idPage2);

    $content = preg_replace(
    array(
    ‘/[tag1]/’ ,
    ‘/[tag2]/’
    ),
    array(
    $tag1,
    $tag2
    ),
    $content
    );

    return $content;
    }

    Le phénomène est bisarre dans le résultat, car le parse fonctionne bien, et je me retrouve bien dans sur ma page en question avec le contenu de la page 123, contenant celui de la page 124 et 125.

    Mon problème est qu’il me place des

    aux endroits que je ne veux pas, et n’en mets pas quand il y en a besoin. Ce qui fausse tout le css derrière.

    Il me sort donc (simplement pour le content) :

    <div class="post_content">
    <p>
    <h2>Mon contenue de la page 1</h2>
    voici le texte de la page 1
    <h2>Mon contenue de la page 2</h2>
    voici le texte de la page 2</p>
    </p>
    </div>

    Alors que j’aimerai qu’il sorte :

    <div class="post_content">
    <h2>Mon contenue de la page 1</h2>
    <p>voici le texte de la page 1</p>
    <h2>Mon contenue de la page 2</h2>
    <p>voici le texte de la page 2</p>
    </div>

    Voilà, j’avoue que malgré ma culture de dév, j’ai un peu de mal à cerner la logique sur ce coup !

    Comment puis-je remédier à mon problème ?

    Merci d’avance pour vos réponses !

    A+

    #824771
    Laurent H
    Membre
    Chevalier WordPress
    126 contributions

    Plutôt que [c]add_action[/c], ça doit être [c]add_filter[/c].
    Ensuite, il faut jouer avec la priorité, pour passer avant/après les filtres qui créent automatiquement les paragraphes.
    Mais pour faire ce que tu veux faire, je passerai plutôt par [c]add_shortcode[/c]…

    #824770
    liandri
    Membre
    Initié WordPress
    2 contributions

    Merci Laurent, je suis justement sur add_shortcode en ce moment pour voir.

    Dans tous les cas j’ai découvert le fonction wpautop() qui fait un premier parse des paragraphes en sortie du post_content

    Je poursuis pour finaliser tout ça

    ++

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