Remove_filter ('the_content', 'wpautop') nu funcționează

12 ian. 2011, 14:42:45
Vizualizări: 14K
Voturi: 2

Am încercat să dezactivez funcția automată de paragrafare din WP folosind

remove_filter ('the_content', 'wpautop');

dar tot primesc conținutul meu încadrat în tag-uri automate <p>... Ce fac greșit?

Codul se află la finalul unui fișier de funcții. Nu este în functions.php, ci într-un fișier inclus de functions.php (iar plasarea lui direct în functions.php nu schimbă comportamentul).

Actualizare: var_dump( $wp_filter['the_content'] ); returnează NULL. Cum pot testa de ce acest filtru nu se execută?

0
Toate răspunsurile la întrebare 4
0

Dacă utilizați pluginul TinyMCE Advanced, încercați să debifați această opțiune avansată:

Oprește eliminarea tagurilor <p> și <br /> la salvare și afișează-le în editorul HTML

Debifarea acestei opțiuni și utilizarea codului remove_filter ('the_content', 'wpautop'); în fișierul meu functions.php a funcționat pentru mine.

11 iul. 2011 23:04:34
14

Codul tău este absolut corect. Poți încerca acest fragment în șablon pentru a verifica dacă este eliminat:

var_dump( $wp_filter['the_content'] );

Dacă nu apare, este posibil ca codul să nu ajungă la eliminarea filtrului tău (de exemplu, un return înaintea acestuia) sau filtrul să fie readăugat mai târziu de alt cod.

12 ian. 2011 15:52:02
Comentarii

sau încearcă să modifici prioritatea filtrului, implicit este 10

onetrickpony onetrickpony
12 ian. 2011 16:08:48

@Ambitious Amoeba nu sunt sigur ce vrei să spui? Prioritatea trebuie să corespundă exact pentru ca remove_filter() să funcționeze.

Rarst Rarst
12 ian. 2011 16:17:35

da, dar dacă adaugi un filtru cu prioritatea 20, nu ar trebui să îl elimini cu aceeași prioritate? poate că autop este adăugat cu o prioritate diferită...

onetrickpony onetrickpony
12 ian. 2011 16:36:15

@Ambitious Amoeba Am verificat codul sursă și am testat codul, este adăugat fără prioritate specificată, deci implicit este cea implicită.

Rarst Rarst
12 ian. 2011 16:43:25

var_dump( $wp_filter['the_content'] ); afișează NULL. Am încercat să caut cu grep pentru wpautop dar se pare că niciun fișier php din wp-content nu conține acest lucru, în afară de linia mea de cod.

gillespieza gillespieza
12 ian. 2011 21:13:59

@Amanda Dacă apelezi acea linie în interiorul unei funcții, nu uita să folosești global $wp_filter;. wpautop este configurat în wp-includes\default-filters.php.

Rarst Rarst
12 ian. 2011 21:16:23

@Rarst - Am pus var_dump în header.php, chiar după afișarea meniului...

gillespieza gillespieza
12 ian. 2011 21:20:04

@Rarst - ups, l-am avut în afara buclei. Returnează o grămadă de lucruri... inclusiv shortcode_unautop dar nimic altceva despre autop

gillespieza gillespieza
12 ian. 2011 21:37:37

Ai încercat să scazi prioritatea de la 10 (implicit) la 1 așa cum a sugerat One Trick Pony?

editor editor
7 feb. 2011 18:49:57

Elimină shortcode_unautop, am avut și eu această problemă, este preg_replace din acel filtru care returnează NULL din cauza unei erori.

Backie Backie
7 feb. 2011 20:30:00

Sunt de acord cu cei care sugerează schimbarea priorității filtrului. Mărește-o la 11, 20 sau chiar 99, doar pentru a verifica dacă prioritatea este de fapt problema.

Chip Bennett Chip Bennett
8 apr. 2011 21:06:19

Am încercat remove_filter ('the_content', 'wpautop', 99); și remove_filter ('the_content', 'wpautop', 1); - nicio modificare.

gillespieza gillespieza
13 apr. 2011 14:21:12

@Backie a adăugat remove_filter ('the_content', 'wpautop'); remove_filter ('the_content', 'shortcode_unautop'); - fără nici o modificare. Am încercat cu priorități 1 și 99 - tot fără efect.

gillespieza gillespieza
13 apr. 2011 14:36:23

Nimic din toate astea nu funcționează pentru mine. E extrem de frustrant. Am nevoie să nu am tag-uri <p> în jurul scripturilor generate dinamic printr-un shortcode și care deci nu pot fi încărcate cu enqueue. La naiba, Wordpress, oprește-te din a-mi modifica codul! De ce e atât de greu să poți spune: "Hei, eu sunt programatorul, nu tu! Nu genera cod, *eu* mă ocup!"

John Smith John Smith
17 mar. 2024 06:23:39
Arată celelalte 9 comentarii
1

Am avut aceeași problemă, am rezolvat-o cu CSS:

<style>
p:empty{
  height: 0;
  margin: 0;
  padding: 0;
}
</style>
17 apr. 2018 20:51:46
Comentarii

Acest lucru nu "rezolvă problema" când ai blocuri de CSS sau JS în cod, etc. Aceasta nu este o soluție, ci o soluție improvizată.

Sean Kendle Sean Kendle
22 aug. 2023 16:53:43
1

Problema mea a apărut în timp ce dezvoltam un shortcode. Mulțumiri lui Samuel Wood. Vezi sfatul său aici:

Și dacă adăugați shortcode-uri, folosiți un bloc de shortcode în loc să le tastați într-un bloc P. Așa nu veți avea tag-uri P înconjurătoare.

https://wordpress.org/support/topic/wpautop-not-working-on-wp_editor/

2 sept. 2021 17:43:50
Comentarii

Deci, pentru cei dintre noi care nu folosim blocuri.... ???

John Smith John Smith
17 mar. 2024 06:22:10