Editorul elimină tag-urile <p>

28 feb. 2011, 05:37:11
Vizualizări: 25.9K
Voturi: 9

Cum pot opri editorul să elimine tag-urile mele <p> și div-urile "goale (&nbsp;)" de pe pagini?

Din moment ce @scribu a cerut un exemplu de cod, iată-l:

Input:

<p>text</p>
<div>&nbsp;</div>

Output:

text
6
Comentarii

De ce punctele negative?

Eeyore Eeyore
8 mar. 2011 03:52:44

folosește pur și simplu acest plugin, are o opțiune încorporată pentru eliminarea automată a tag-urilor p și br http://wordpress.org/extend/plugins/tinymce-advanced/

User User
3 aug. 2011 13:54:33

Hai, sigur că în ultimii 8 ani trebuie să fi existat o soluție la asta... având în vedere că și eu o întâlnesc și se pare că nu există niciun motiv pentru care orice element <p> ar trebui eliminat. De ce se mai întâmplă asta?

Lee Lee
21 mai 2019 12:11:02

Dacă vei adăuga tag-uri HTML, de ce nu folosești direct Editorul HTML?

Chip Bennett Chip Bennett
3 aug. 2011 14:36:00

și cum facem asta?

jeff jeff
30 sept. 2013 13:13:27

FYI, asta folosesc eu, și tot îmi elimină tag-urile <p> care încadrează shortcode-urile pe front-end. Nu se întâmplă nimic în interiorul shortcode-ului, dar e ciudat că dispar fără niciun motiv.

Lee Lee
21 mai 2019 12:10:12
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 7
1

Am avut probleme cu TinyMCE Advanced. M-am luptat cu asta pentru o vreme. În final am descoperit o soluție simplă - Folosește Shortcodes!

Pune acest cod în functions.php și introdu [br] oriunde dorești să apară un tag br.

add_shortcode("br", "br_tag");

function br_tag(){
        return("<br/>");                            
}
31 aug. 2012 00:16:38
Comentarii

Haha, asta e Wordpress pe scurt.

qwerty qwerty
27 nov. 2012 11:39:37
0

1) Încercați câteva plugin-uri diferite care dezactivează formatarea și opresc eliminarea paragrafelor și spațiilor albe în exces din WordPress: http://wordpress.org/extend/plugins/search.php?q=formatting&sort=

2) Puteți păcăli WordPress să adauge un salt de paragraf folosind <b>&nbsp;</b> în editorul HTML. Este un spațiu neruptibil în tag-uri <b>. Nu îl veți putea vedea în editorul vizual, așa că adăugați-l în editorul HTML. Este o soluție urâtă, dar funcționează fără a fi nevoie să dezactivați complet formatarea.

3) De asemenea, puteți face acest lucru în fișierul functions.php și apoi să înfășurați textul pe care nu doriți să-l formatați cu tag-urile <!-- noformat on --> și <!-- noformat off -->.

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)));      //Aplică ambele funcții (mai rapid)

        $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)));      //Aplică ambele funcții (mai rapid)

    //Pentru a elimina tag-urile
    $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');
28 feb. 2011 06:23:15
0

Adaugă în fișierul tău functions.php

remove_filter ('the_content', 'wpautop');
remove_filter ('the_excerpt', 'wpautop');

Dar trebuie să adaugi manual tag-urile <p> și <br/>. Aceste tag-uri nu sunt salvate în baza de date.

28 feb. 2011 08:58:25
0

Știu că acesta este un forum destul de vechi... am dat peste multe discuții pe această temă a editorului vizual care elimină tag-urile la comutarea între file... Pur și simplu am urmat acest link: http://rubayathasan.com/reviews/enabling-line-break-in-wordpress/#comment-1349250

și am instalat TinyMCE Advanced... totul funcționează perfect și acum am mai multe opțiuni pe care le pot adăuga în editorul meu vizual.

29 iun. 2015 23:31:53
0

Este o întrebare mai veche, dar acest lucru v-ar putea ajuta pe voi sau pe altcineva pentru o parte din problemă:

add_filter('wp_insert_post_data', function ($data, $postarr) {
    $data['post_content'] = wpautop($data['post_content']);

    return $data;
}, 10, 2);

Acest cod adaugă tag-urile de paragraf înainte de salvarea conținutului. Și, desigur, editorul în continuare înțelege cum să-l proceseze ;)

Nu vă poate ajuta cu &nbsp;, dar vă puteți întreba dacă acestea sunt necesare și poate puteți rezolva problema cu CSS? Doar încerc să ajut. Sau puteți folosi soluția alternativă (<b>&nbsp;<b/>) explicată de @markratledge

16 nov. 2017 21:53:22
0

Un pic de necro, dar pentru tag-ul <p> poți adăuga o clasă sau poate altă proprietate.

De exemplu:

<p class="nothing-relevant">Foo</p>

nu va fi eliminat (folosind Gutenberg).

22 ian. 2019 19:25:11
0
-1

Am descoperit că dacă atașezi o clasă la tag-ul tău de paragraf, WordPress nu o va elimina. Nu este nevoie să ai niciun CSS pentru acea clasă.

10 oct. 2022 23:26:46