WordPress adaugă automat " "?
Nu sunt sigur dacă WordPress sau TinyMCE face acest lucru. Dar când comut între editorul HTML și cel Vizual, se adaugă
, și adaugă unul în plus de fiecare dată când comut înainte și înapoi. Nu am nici măcar un salt la linie în cod, se pare că decide cumva unde vrea să le plaseze bazându-se pe tag-urile din codul meu HTML.
Ce cauzează acest lucru și cum îl pot remedia?
Am încercat deja acest cod în fișierul functions.php al temei:
//dezactivează auto p
remove_filter ('the_content', 'wpautop');
remove_filter ('comment_text', 'wpautop');
// Elimină formatarea automată
remove_filter('the_content', 'wptexturize');
remove_filter('comment_text', 'wptexturize');
remove_filter('the_title', 'wptexturize');

Am descoperit că spațiile nemărginite sunt introduse atunci când folosesc două spații după un punct. Editorul pare să interpreteze spațiul suplimentar ca o încercare din partea mea de a utiliza spații pentru formatarea textului.
Dacă copiez și lipesc articolul meu din editorul Wordpress într-un editor de text care suportă afișarea hexazecimală (eu folosesc EditPad Pro), observ că textul pe care l-am considerat a fi un punct urmat de două spații este în realitate text urmat de un singur spațiu, urmat de caracterul Unicode cu codul hexazecimal A0, care este caracterul Unicode SPAȚIU NEMĂRGINIT.
Am reușit să elimin spațiul nemărginit din articolele existente prin înlocuirea spațiului urmat de caracterul SPAȚIU NEMĂRGINIT cu doar un spațiu. În majoritatea editorilor de text, acest lucru ar trebui să fie posibil prin căutare și înlocuire, copiind "două spații" în caseta de text pentru căutare și scriind un singur spațiu în caseta de text pentru înlocuire.
Am reușit să evit problema pe viitor tastând doar un singur spațiu după un punct.

Ce cauzează această problemă și cum o pot rezolva?
Orice conținut adăugat sau eliminat din Conținutul Postării este cauzat de tiny_mce_init
, care aplică regulile sale de filtrare a conținutului.
Modalitățile de a preveni acest lucru sunt:
- Filtrează
tiny_mce_init
, pentru a suprascrie regulile implicite de filtrare a conținutului - Nu mai comuta între editorul Vizual și cel HTML. Serios; dacă nu dorești să folosești opțiunea #1 de mai sus, nu comuta între editori. WordPress este conceput să fie utilizat astfel încât conținutul să fie introdus folosind fie editorul Vizual, fie cel HTML, dar nu ambele simultan.
Exemplu de utilizare pentru filtrul tiny_mce_before_init
în Codex. Un alt exemplu de configurare/personalizare TinyMCE în Codex aici.

Sunt destul de sigur că răspunsul tău #2 este greșit. Fie asta, fie cineva a "dat-o în bară" la interfața utilizator.
Dacă editorul a fost conceput să fie folosit doar în modul Vizual sau HTML, de ce să existe filele acolo? De ce nu doar să existe o opțiune în setări pentru a-l folosi într-un mod sau altul?
Mai mult, filele sunt acolo în mod implicit... nu este vreo funcționalitate avansată pentru developeri sau opțiune pe care trebuie să o configurezi. Sunt destul de sigur că au fost concepute pentru a permite utilizatorilor să treacă între ele și că adevărata problemă este că uneori nu funcționează bine împreună. (mai ales în cazul formatării spațiilor)

@luckykind Nu, nu au fost concepute pentru a comuta între ele. Aceasta este doar o problemă de arhitectură a TinyMCE. Și este nu singura.

Nu poți să-mi spui că o interfață care oferă file pentru a comuta între editarea HTML și Vizuală nu a fost concepută să fie folosită în acest fel. Este aproape 2016 și problema încă persistă.

În cazul în care cineva încă se confruntă cu această problemă în 2020. Am avut această problemă după ce am migrat o cantitate mare de conținut în WordPress. Ghici ce, toată lumea a făcut copiere și lipire și am ajuns cu prea mult conținut pentru a putea corecta manual. Am implementat funcția PHP de mai jos și am adăugat-o în functions.php, rezolvând problema pentru 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)
Numărul 999999 este doar pentru a ne asigura că acest filtru va rula ultimul, în cazul în care aceste
sunt adăugate undeva în mijloc.

Folosesc Wordpress pentru un blog în limba ebraică.
Soluție alternativă: Copiază textul într-un editor precum Sublime sau Notepad++ și înlocuiește spațiile neseparabile cu spații normale. Poți copia unul dintre ele din text.
Declinare de răspundere: aceasta nu este chiar un răspuns, ci mai degrabă o soluție alternativă, așa că simte-te liber să dai vot negativ. Pentru mine, Wordpress adaugă nesăbuit spații neseparabile peste tot și fără niciun motiv. Nu sunt sigur ce le provoacă. Se întâmplă mai des cu textul în ebraică, mult mai mult decât cu orice text în engleză.
