web-dev-qa-db-fra.com

Wordpress ajoute <p> dans mes javascripts

J'utilise un curseur appelé revoslider et je l'utilise via un shortcode.

Lorsque j'utilise le shortcode et que je n'utilise pas Visual Editor pour insérer et enregistrer, le curseur ne fonctionne pas car WordPress ajoute <p> dans javascript de la manière suivante:

<p>         <script type="text/javascript"></p>
<p>             var tpj=jQuery;</p>
<p>                                 tpj.noConflict();</p>
<p>             var revapi1;</p>
<p>             tpj(document).ready(function() {</p>
<p>             if (tpj.fn.cssOriginal != undefined)
                    tpj.fn.css = tpj.fn.cssOriginal;</p>
<p>             if(tpj('#rev_slider_1_1').revolution == undefined)
                    revslider_showDoubleJqueryError('#rev_slider_1_1');
                else
                   revapi1 = tpj('#rev_slider_1_1').show().revolution(
                    {
                        delay:9000,
                        startwidth:960,
                        startheight:350,
                        hideThumbs:200,</p>
<p>                     thumbWidth:100,
                        thumbHeight:50,
                        thumbAmount:2,</p>
<p>                     navigationType:"bullet",
                        navigationArrows:"solo",
                        navigationStyle:"round",</p>
<p>                     touchenabled:"on",
                        onHoverStop:"on",</p>
<p>                     navigationHAlign:"center",
                        navigationVAlign:"bottom",
                        navigationHOffset:0,
                        navigationVOffset:20,</p>
<p>                     soloArrowLeftHalign:"left",
                        soloArrowLeftValign:"center",
                        soloArrowLeftHOffset:20,
                        soloArrowLeftVOffset:0,</p>
<p>                     soloArrowRightHalign:"right",
                        soloArrowRightValign:"center",
                        soloArrowRightHOffset:20,
                        soloArrowRightVOffset:0,</p>
<p>                     shadow:2,
                        fullWidth:"off",</p>
<p>                     stopLoop:"off",
                        stopAfterLoops:-1,
                        stopAtSlide:-1,</p>
<p>                     shuffle:"off",</p>
<p>                     hideSliderAtLimit:0,
                        hideCaptionAtLimit:0,
                        hideAllCaptionAtLilmit:0,
                        startWithSlide:0    
                    });</p>
<p>             }); //ready</p>
<p>         </script></p>

Pour cette raison, le code ne fonctionne pas et je ne comprends pas pourquoi WordPress ajoute ces <p> à chaque ligne - c'est un ridicoulus.

J'ai essayé add_filter pour le contenu, mais cela ne fonctionne pas non plus.

5
Fran

Vous devez soit

1) retirez tous les espaces du script afin que WordPress n’ajoute pas de balises <p> et que le JS fonctionnera, ou

2) désactivez autop dans l'éditeur de publication pour toutes les publications/pages (voir http://codex.wordpress.org/Function_Reference/wpautop ) afin que WP n'ajoute pas de sauts de paragraphe, ou

3) procédez comme suit, ce qui laisse autop activé globalement, mais vous permet de le désactiver avec et des balises dans des publications et des pages individuelles.

Ajoutez la fonction ci-dessous à functions.php et utilisez les deux balises

<!-- noformat on --> et <!-- noformat off -->

dans votre éditeur de page/publication, c'est-à-dire

    text will be rendered *with* autop

    <!-- noformat on -->

    text will be rendered *without* autop

    <!-- noformat off -->

    text will be rendered *with* autop

Le contenu en dehors des deux balises de format aura l'autop activé, comme indiqué.

Ajouter à functions.php du thème:

// <!-- noformat on --> and <!-- noformat off --> functions

function newautop($text)
{
    $newtext = "";
    $pos = 0;

    $tags = array('<!-- noformat on -->', '<!-- noformat off -->');
    $status = 0;

    while (!(($newpos = strpos($text, $tags[$status], $pos)) === FALSE))
    {
        $sub = substr($text, $pos, $newpos-$pos);

        if ($status)
            $newtext .= $sub;
        else
            $newtext .= convert_chars(wptexturize(wpautop($sub)));      //Apply both functions (faster)

        $pos = $newpos+strlen($tags[$status]);

        $status = $status?0:1;
    }

    $sub = substr($text, $pos, strlen($text)-$pos);

    if ($status)
        $newtext .= $sub;
    else
        $newtext .= convert_chars(wptexturize(wpautop($sub)));      //Apply both functions (faster)

    //To remove the tags
    $newtext = str_replace($tags[0], "", $newtext);
    $newtext = str_replace($tags[1], "", $newtext);

    return $newtext;
}

function newtexturize($text)
{
    return $text;   
}

function new_convert_chars($text)
{
    return $text;   
}

remove_filter('the_content', 'wpautop');
add_filter('the_content', 'newautop');

remove_filter('the_content', 'wptexturize');
add_filter('the_content', 'newtexturize');

remove_filter('the_content', 'convert_chars');
add_filter('the_content', 'new_convert_chars');
7
markratledge