Remove_filter ('the_content', 'wpautop') non funziona

12 gen 2011, 14:42:45
Visualizzazioni: 14K
Voti: 2

Ho provato a disabilitare la formattazione automatica dei paragrafi in WP usando

remove_filter ('the_content', 'wpautop');

ma continuo a vedere il mio contenuto avvolto nei tag <p> automatici... Cosa sto sbagliando?

Il codice si trova in fondo a un file functions. Non è in functions.php, ma in un file incluso da functions.php (e inserirlo direttamente in functions.php non cambia il comportamento).

Aggiornamento: var_dump( $wp_filter['the_content'] ); restituisce NULL. Come posso verificare perché questo filtro non viene eseguito?

0
Tutte le risposte alla domanda 4
0

Se stai utilizzando il plugin TinyMCE Advanced, prova a deselezionare questa opzione avanzata:

Smetti di rimuovere i tag <p> e <br /> durante il salvataggio e mostrali nell'editor HTML

Deselezionando questa opzione e utilizzando il codice remove_filter ('the_content', 'wpautop'); nel mio functions.php ha risolto il problema per me.

11 lug 2011 23:04:34
14

Il tuo codice è assolutamente corretto. Puoi provare questo snippet nel template per assicurarti che venga rimosso:

var_dump( $wp_filter['the_content'] );

Se non viene rimosso, potrebbe essere che il codice non raggiunga mai la tua rimozione del filtro (ad esempio un return sopra di esso) oppure che il filtro venga riaggiunto successivamente da qualche altro codice.

12 gen 2011 15:52:02
Commenti

oppure prova a modificare la priorità del filtro, il valore predefinito è 10

onetrickpony onetrickpony
12 gen 2011 16:08:48

@Ambitious Amoeba non sono sicuro di cosa intendi? La priorità deve corrispondere esattamente affinché remove_filter() funzioni.

Rarst Rarst
12 gen 2011 16:17:35

sì, ma se aggiungi un filtro con priorità 20, non dovresti rimuoverlo con la stessa priorità? forse autop viene aggiunto con una priorità diversa...

onetrickpony onetrickpony
12 gen 2011 16:36:15

@Ambitious Amoeba Ho controllato il sorgente e testato il codice, viene aggiunto senza priorità specificata quindi è quella predefinita.

Rarst Rarst
12 gen 2011 16:43:25

var_dump( $wp_filter['the_content'] ); restituisce NULL. Ho provato a cercare con grep wpautop ma apparentemente nessuno dei file php in wp-content lo contiene, a parte la mia riga di codice.

gillespieza gillespieza
12 gen 2011 21:13:59

@Amanda Se chiami quella riga all'interno di una funzione non dimenticare di fare global $wp_filter;. wpautop è configurato in wp-includes\default-filters.php.

Rarst Rarst
12 gen 2011 21:16:23

@Rarst - Ho inserito il var_dump dentro header.php, subito dopo l'output del menu...

gillespieza gillespieza
12 gen 2011 21:20:04

@Rarst - ops, l'avevo fuori dal loop. Restituisce un sacco di roba... incluso shortcode_unautop ma nient'altro che potessi vedere riguardo autop

gillespieza gillespieza
12 gen 2011 21:37:37

Hai provato a ridurre la priorità da 10 (default) a 1 come suggerito da One Trick Pony?

editor editor
7 feb 2011 18:49:57

Rimuovi shortcode_unautop, ho avuto questo problema anch'io, è il preg_replace in quel filtro che restituirà NULL a causa di un errore.

Backie Backie
7 feb 2011 20:30:00

Concordo con chi suggerisce di cambiare la priorità del filtro. Aumentala a 11, o 20, o persino 99, solo per vedere se la priorità è effettivamente il problema.

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

Ho provato remove_filter ('the_content', 'wpautop', 99); e remove_filter ('the_content', 'wpautop', 1); - nessun cambiamento.

gillespieza gillespieza
13 apr 2011 14:21:12

@Backie ha aggiunto remove_filter ('the_content', 'wpautop'); remove_filter ('the_content', 'shortcode_unautop'); - nessun cambiamento. Provato sia con priorità 1 che 99 - nessun cambiamento.

gillespieza gillespieza
13 apr 2011 14:36:23

Niente di tutto questo funziona per me. È estremamente frustrante. Ho bisogno di non avere tag <p> attorno agli script generati dinamicamente da uno shortcode e quindi non enqueueable. D&$^&^$T, Wordpress, smettila di modificare il mio codice! Perché è così difficile dire semplicemente: "Ehi, sono io il programmatore, non tu! Non creare codice, sarò io* a farlo!"

John Smith John Smith
17 mar 2024 06:23:39
Mostra i restanti 9 commenti
1

Avevo lo stesso problema, risolto con il CSS:

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

Questo non "risolve il problema" quando hai blocchi di CSS o JS nel codice, ecc. Questa non è una soluzione, è un approccio approssimativo.

Sean Kendle Sean Kendle
22 ago 2023 16:53:43
1

Il mio problema si è verificato durante lo sviluppo di uno shortcode. Ringrazio Samuel Wood per il suo consiglio. Leggi il suo suggerimento qui:

Ah, e se stai inserendo degli shortcode, usa un blocco shortcode invece di scriverli in un blocco P. In questo modo non avrai i tag P wrapper.

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

2 set 2021 17:43:50
Commenti

Quindi, per quelli di noi che non usano i blocchi.... ???

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