Wordpress aggiungendo automaticamente "& nbsp;"?


12

Non sono sicuro che sia Wordpress stesso o Tiny MCE a farlo. Ma quando si passa da HTML a Visual editor si aggiunge  e si aggiunge uno in più ogni volta che si passa avanti e indietro. Non ho nemmeno un'interruzione di riga nel codice, sembra in qualche modo decidere dove vuole posizionarli in base ai tag nel mio codice HTML.

Cosa sta causando questo e come posso risolverlo?

Ho già provato questo nel file delle funzioni del modello:

//disable auto p
remove_filter ('the_content', 'wpautop');
remove_filter ('comment_text', 'wpautop');
// Remove auto formatting
remove_filter('the_content', 'wptexturize');
remove_filter('comment_text', 'wptexturize');
remove_filter('the_title', 'wptexturize');

2
In realtà lo fa automaticamente quando cambi scheda, l'ho notato anche io e l'ho trovato molto fastidioso. Non ho ancora idea di come risolverlo ...
Joost de Valk,

1
Uso quasi esclusivamente l'editor HTML, incollando il codice lì dentro da BBEdit. Mi sembra di fare questo quando salvo in WP.
Arrivederci Stack Exchange

bene ho anche questo problema. Quando inserisco manualmente e faccio clic sul pulsante Invio, verrà aggiunto il paragrafo per me. Questo succede dopo aver installato tiny mce. Che cosa intendi con questo in ogni caso: Filtra tiny_mce_init, per sovrascrivere le regole di filtro del contenuto predefinite

1
Questo mi sta succedendo sui titoli dei post nel loop. Sembra indiscriminato (succede solo su alcuni caratteri spaziali di alcuni post).
Drewdavid il

Sono riuscito a trovare una soluzione semplice per questo problema: wordpress.stackexchange.com/a/291746/135285
AturSams

Risposte:


2

Tutto quello che uso è remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' );e ciò impedisce a Wordpress di creare qualsiasi markup aggiuntivo. Stai copiando e incollando il tuo codice da un editor esterno?


4
non ha funzionato per me. Senza usare Tiny MCE, solo in HTML ogni "aggiornamento" aggiunge ancora nuovi  s
Christian il

3
Inoltre non funziona per me
Sidonaldson,

4

Ho scoperto che gli spazi non interrotti vengono inseriti quando uso due spazi dopo un punto. L'editor sembra interpretare lo spazio extra come un tentativo da parte mia di utilizzare gli spazi per la formattazione del testo.

Se copio e incollo il mio articolo dall'editor di Wordpress in un editor di testo che supporta la visualizzazione esadecimale (utilizzo EditPad Pro), vedo che il testo che pensavo fosse un punto seguito da due spazi è in realtà testo seguito da un singolo spazio, seguito dal carattere unicode con il codice esadecimale A0, che è il carattere Unicode NO-BREAK SPACE .

Sono stato in grado di rimuovere lo spazio senza interruzioni negli articoli esistenti sostituendo lo spazio seguito dal carattere NO_BREAK SPACE con solo uno spazio. Nella maggior parte degli editor di testo, dovresti essere in grado di farlo con la ricerca e la sostituzione copiando i "due spazi" nella casella di testo Trova e scrivendo un singolo spazio nella casella di testo Sostituisci.

Sono stato in grado di evitare il problema andando avanti digitando un solo spazio dopo un punto.


3

Cosa sta causando questo e come posso risolverlo?

Qualsiasi contenuto aggiunto o rimosso dal contenuto del tuo post è causato da tiny_mce_init, che sta applicando le regole di filtro del contenuto.

I modi per prevenirlo sono:

  1. Filtro tiny_mce_init, per sovrascrivere le regole di filtro del contenuto predefinite
  2. Interrompere il passaggio tra editor Visual e HTML . Veramente; a meno che tu non voglia usare l'opzione 1 sopra, non passare da un editor all'altro . WordPress è pensato per essere usato in modo tale che il contenuto sia inserito usando l' editor Visual o HTML , ma non entrambi contemporaneamente.

Esempio di utilizzo per il tiny_mce_before_initfiltro in Codex. Un altro esempio di configurazione / personalizzazione di TinyMCE nel Codex qui .


11
Sono abbastanza sicuro che la tua risposta n. 2 sia sbagliata. Quello o qualcuno "ha fregato il cane" sull'interfaccia utente. Se l'editor doveva essere utilizzato solo come Visual o HTML, perché le schede sono presenti? Perché non solo averlo come opzione nelle impostazioni per usarlo in un modo o nell'altro? Inoltre, le schede sono lì per impostazione predefinita ... non è una funzionalità avanzata per gli sviluppatori o un'opzione che devi configurare. Sono abbastanza sicuro che fossero destinati agli utenti a fare clic avanti e indietro e che il vero problema è che a volte non funzionano bene insieme. (specialmente nel caso della formattazione dello spazio)
luckykind

1
@luckykind No, non erano destinati a passare da una parte all'altra. Questo è solo un problema architettonico di TinyMCE . E non è l'unico .
Kaiser

3
Non puoi dirmi che un'interfaccia utente che offre schede per alternare tra HTML e Visual editing non è destinata a essere utilizzata in questo modo. È quasi il 2016 e il problema è ancora lì.
Eric J.

1
Penso che il mio computer non fosse destinato ad essere acceso ma dato che ha un pulsante di accensione lo abbiamo acceso, quindi tutti i problemi sono colpa dell'utente. Il design e il codice sono ovviamente impeccabili.
AturSams,

1

Sto usando Wordpress per un blog ebraico.

Soluzione alternativa: copiare il testo in un editor come sublime o notepad ++ e cercare e sostituire gli spazi normali. Puoi copiarne uno dal testo.

Disclaimer: questa non è molto una risposta e più una soluzione alternativa, quindi sentiti libero di votare. Per me Wordpress aggiunge felicemente nbsp ovunque e senza rima o motivo. Non sono sicuro di cosa lo stia causando. Sta accadendo molto con il testo ebraico, molto più che con qualsiasi testo inglese.


0

Nel caso in cui qualcuno fosse ancora bloccato con questo nel 2020. Abbiamo avuto questo problema dopo aver migrato un sacco di contenuti su Wordpress. Indovina un po ', tutti hanno fatto la cosa copia e incolla e finiamo con troppi contenuti per poterli riparare manualmente. Ho implementato la funzione php qui sotto e l'ho aggiunta a Functions.php e ha risolto il problema per noi.

    function replace_content($content) {
        $content = htmlentities($content, null, 'utf-8');
        $content = str_replace(" ", " ", $content);
        $content = html_entity_decode($content);
    return $content;
    }
    add_filter('the_content','replace_content', 999999999)

Il 999999 è solo per assicurarsi che questo filtro verrà eseguito per ultimo, nel caso in cui  vengano aggiunti da qualche parte nel mezzo.


-1

Nel file css. Metti display: inline-flexalla p dentro the excerpt. Gli spazi bianchi aggiuntivi non danno più fastidio. per me va bene

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.