Wordpress secara otomatis menambahkan "& nbsp;"?

12

Saya tidak yakin apakah wordpress itu sendiri atau Tiny MCE yang melakukannya. Tetapi ketika beralih antara HTML dan editor Visual itu menambahkan  , dan menambahkan satu tambahan setiap kali saya beralih bolak-balik. Saya bahkan tidak memiliki satu baris pun dalam kode, sepertinya entah bagaimana memutuskan di mana ia ingin menempatkan mereka berdasarkan tag dalam kode html saya.

Apa yang menyebabkan ini dan bagaimana cara memperbaikinya?

Saya sudah mencoba ini di file fungsi template:

//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');
Dave
sumber
2
Ini sebenarnya melakukan ini secara otomatis ketika Anda beralih tab, saya perhatikan juga, dan merasa sangat menjengkelkan. Tidak ada petunjuk tentang cara memperbaikinya ...
Joost de Valk
1
Saya menggunakan editor HTML hampir secara eksklusif, menempelkan kode di sana dari BBEdit. Tampaknya melakukan ini kepada saya ketika saya simpan di WP.
Selamat Tinggal Stack Exchange
baik saya punya masalah ini juga. Ketika saya memposting secara manual dan mengklik tombol enter, itu akan menambahkan paragraf untuk saya. Ini terjadi setelah saya menginstal mce kecil. Apa yang Anda maksud dengan ini: Saring tiny_mce_init, untuk mengganti aturan penyaringan konten default
1
Ini terjadi pada saya di judul posting di loop. Tampak membabi buta (terjadi hanya pada beberapa karakter spasi dari beberapa posting).
Drewdavid
Saya berhasil menemukan solusi yang mudah untuk masalah ini: wordpress.stackexchange.com/a/291746/135285
AturSams

Jawaban:

2

Semua yang saya gunakan adalah remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' );dan yang menghentikan Wordpress dari membuat markup tambahan. Apakah Anda menyalin dan menempelkan kode Anda dari editor eksternal?

Matthew Xerri
sumber
4
tidak bekerja untuk saya. Tanpa menggunakan Tiny MCE, hanya dalam HTML setiap "pembaruan" masih menambahkan  s
Christian
3
Juga tidak bekerja untuk saya
sidonaldson
4

Saya menemukan bahwa ruang tanpa putus sedang dimasukkan ketika saya menggunakan dua ruang setelah periode. Editor tampaknya menafsirkan ruang ekstra sebagai upaya di pihak saya untuk menggunakan spasi untuk pemformatan teks.

Jika saya menyalin dan menempelkan artikel saya dari editor Wordpress ke editor teks yang mendukung tampilan hex (saya menggunakan EditPad Pro), saya melihat bahwa teks yang saya pikir adalah periode diikuti oleh dua spasi sebenarnya teks diikuti oleh satu space, diikuti oleh karakter unicode dengan kode hex A0, yang merupakan karakter Unicode NO-BREAK SPACE .

Saya dapat menghapus ruang tidak melanggar di artikel yang ada dengan mengganti ruang diikuti oleh karakter NO_BREAK SPACE hanya dengan spasi. Di sebagian besar editor teks, Anda harus dapat melakukannya dengan mencari & mengganti dengan menyalin "dua spasi" ke dalam kotak teks Temukan dan menulis satu spasi ke dalam kotak teks Ganti.

Saya dapat menghindari masalah ini dengan hanya mengetik satu spasi setelah satu periode.

Eric J.
sumber
3

Apa yang menyebabkan ini dan bagaimana cara memperbaikinya?

Setiap konten yang ditambahkan atau dihapus dari Konten Posting Anda disebabkan oleh tiny_mce_init, yang menerapkan aturan penyaringan konten.

Cara untuk mencegahnya adalah:

  1. Filter tiny_mce_init, untuk mengganti aturan penyaringan konten default
  2. Berhenti beralih antara editor Visual dan HTML . Betulkah; kecuali jika Anda ingin menggunakan opsi # 1 di atas, jangan beralih di antara editor . WordPress dimaksudkan untuk digunakan sedemikian rupa sehingga konten dimasukkan menggunakan Visual atau editor HTML , tetapi tidak keduanya secara bersamaan.

Contoh penggunaan untuk tiny_mce_before_initfilter dalam Codex. Contoh lain dari konfigurasi / penyesuaian TinyMCE di Codex di sini .

Chip Bennett
sumber
11
Saya cukup yakin bahwa jawaban # 2 Anda salah. Itu atau seseorang "mengacaukan anjing" pada UI. Jika editor dimaksudkan hanya digunakan sebagai Visual atau HTML, mengapa Tab ada di sana? Mengapa tidak hanya menjadikannya sebagai opsi di bawah pengaturan untuk menggunakannya dengan satu atau lain cara? Lebih jauh lagi, tab ada di sana secara default ... itu bukan fitur lanjutan pengembang atau opsi yang harus Anda siapkan. Saya cukup yakin mereka di mana dimaksudkan untuk pengguna untuk dapat bolak-balik antara dan bahwa masalah sebenarnya adalah bahwa kadang-kadang mereka tidak bekerja bersama dengan baik. (Terutama dalam hal pemformatan ruang)
luckykind
1
@ luckykind Tidak, mereka tidak berniat untuk beralih dan kembali di antara mereka. Itu hanya masalah arsitektur TinyMCE . Dan itu bukan satu-satunya .
kaiser
3
Anda tidak dapat memberi tahu saya bahwa UI yang menawarkan tab untuk beralih antara HTML dan pengeditan Visual tidak dimaksudkan untuk digunakan seperti itu. Sudah hampir 2016 dan masalahnya masih ada.
Eric J.
1
Saya pikir komputer saya tidak dimaksudkan untuk dihidupkan tetapi karena memiliki tombol power kami menyalakannya sehingga semua masalah adalah kesalahan pengguna. Desain dan kodenya jelas tanpa cacat.
AturSams
1

Saya menggunakan Wordpress untuk Blog Ibrani.

Penanganan masalah: Salin teks ke editor seperti sublime atau notepad ++ dan cari dan ganti dengan spasi normal. Anda dapat menyalin salah satunya dari teks.

Penafian: ini bukan jawaban dan lebih banyak solusi jadi jangan ragu untuk mengundurkan diri. Bagi saya, Wordpress dengan senang hati menambahkan nbsp di mana-mana dan tanpa sajak atau alasan. Tidak yakin apa yang menyebabkannya. Ini banyak terjadi pada teks Ibrani, jauh lebih banyak daripada teks bahasa Inggris lainnya.

AturSams
sumber
0

Jika ada seseorang yang masih terjebak dengan ini pada tahun 2020. Kami memiliki masalah ini setelah memigrasi banyak konten ke Wordpress. Coba tebak, semua orang melakukan copy dan paste dan kami berakhir dengan terlalu banyak konten untuk dapat diperbaiki secara manual. Saya menerapkan fungsi php di bawah dan menambahkannya ke functions.php dan itu memecahkan masalah bagi kami.

    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)

999999 hanya untuk memastikan filter ini akan berjalan terakhir, kalau-kalau ini  ditambahkan di suatu tempat di tengah.

Bruno
sumber
-1

Dalam file css. Masukkan display: inline-flexke p di dalam the excerpt. Ruang putih tambahan tidak mengganggu lagi. bekerja untukku

Victor Montes de Oca
sumber