Wordpress tự động thêm & & ;;


12

Tôi không chắc là chính wordpress hay Tiny MCE đang làm điều đó. Nhưng khi chuyển đổi giữa HTML và trình soạn thảo Visual, nó sẽ thêm  và thêm một lần nữa mỗi lần tôi chuyển đổi qua lại. Tôi thậm chí không có một dòng ngắt trong mã, dường như bằng cách nào đó quyết định nơi nó muốn đặt chúng dựa trên các thẻ trong mã html của tôi.

Điều gì gây ra điều này và làm cách nào để khắc phục nó?

Tôi đã thử điều này trong tệp chức năng mẫu:

//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
Nó thực sự làm điều này tự động khi bạn chuyển tab, tôi cũng nhận thấy nó và thấy nó rất khó chịu. Vẫn chưa biết cách khắc phục mặc dù ...
Joost de Valk

1
Tôi sử dụng trình soạn thảo HTML gần như độc quyền, dán mã trong đó từ BBEdit. Nó dường như làm điều này với tôi khi tôi lưu trong WP.
Tạm biệt trao đổi ngăn xếp

tôi cũng có vấn đề này Khi tôi đăng thủ công và nhấp vào nút enter, nó sẽ thêm đoạn cho tôi. Điều này xảy ra sau khi tôi cài đặt mce nhỏ. Dù sao thì ý của bạn là gì: Lọc tiny_mce_init, để ghi đè các quy tắc lọc nội dung mặc định

1
Điều này đang xảy ra với tôi trên tiêu đề bài trong vòng lặp. Có vẻ bừa bãi (chỉ xảy ra trên một số ký tự không gian của một số bài viết).
Drewdavid

Tôi đã tìm được cách giải quyết dễ dàng cho vấn đề này: wordpress.stackexchange.com/a/291746/135285
AturSams

Câu trả lời:


2

Tất cả những gì tôi sử dụng là remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' );và điều đó ngăn Wordpress tạo thêm bất kỳ đánh dấu nào. Bạn đang sao chép và dán mã của mình từ một trình soạn thảo bên ngoài?


4
không làm việc cho tôi. Không sử dụng Tiny MCE, chỉ trong HTML, mỗi "cập nhật" vẫn thêm  s mới
Christian

3
Cũng không làm việc cho tôi
sidonaldson

4

Tôi thấy rằng các khoảng trắng không bị phá vỡ đang được chèn khi tôi sử dụng hai khoảng trắng sau một khoảng thời gian. Trình chỉnh sửa dường như diễn giải không gian thừa như một nỗ lực từ phía tôi để sử dụng khoảng trắng để định dạng văn bản.

Nếu tôi sao chép và dán bài viết của mình từ trình soạn thảo Wordpress vào trình soạn thảo văn bản hỗ trợ hiển thị hex (tôi sử dụng EditPad Pro), tôi thấy văn bản mà tôi nghĩ là một khoảng thời gian có hai khoảng trắng nằm trong văn bản thực tế theo sau là một văn bản khoảng trắng, theo sau là ký tự unicode với mã hex A0, là ký tự Unicode NO-BREAK SPACE .

Tôi đã có thể xóa không gian không phá vỡ trong các bài viết hiện có bằng cách thay thế khoảng trắng theo sau là ký tự NO_BREAK SPACE chỉ bằng một khoảng trắng. Trong hầu hết các trình soạn thảo văn bản, bạn sẽ có thể thực hiện điều đó bằng tìm kiếm & thay thế bằng cách sao chép "hai khoảng trắng" vào hộp văn bản Tìm và viết một khoảng trắng vào hộp văn bản Thay thế.

Tôi đã có thể tránh được vấn đề này bằng cách chỉ gõ một khoảng trống sau một khoảng thời gian.


3

Điều gì gây ra điều này và làm cách nào để khắc phục nó?

Bất kỳ nội dung nào được thêm vào hoặc xóa khỏi Nội dung bài đăng của bạn là do tiny_mce_init, điều đang áp dụng là quy tắc lọc nội dung.

Các cách để ngăn chặn nó là:

  1. Bộ lọc tiny_mce_init, để ghi đè các quy tắc lọc nội dung mặc định
  2. Dừng chuyển đổi giữa các trình soạn thảo Visual và HTML . Có thật không; trừ khi bạn muốn sử dụng tùy chọn # 1 ở trên, không chuyển đổi giữa các biên tập viên . WordPress dự định sẽ được sử dụng sao cho nội dung được nhập bằng trình chỉnh sửa Visual hoặc HTML , nhưng không phải cả hai cùng một lúc.

Ví dụ sử dụng cho tiny_mce_before_initbộ lọc trong Codex. Một ví dụ khác về cấu hình / tùy chỉnh TinyMCE trong Codex tại đây .


11
Tôi khá chắc chắn rằng câu trả lời số 2 của bạn là sai. Điều đó hoặc ai đó "vặn vẹo" trên UI. Nếu trình soạn thảo chỉ được sử dụng như Visual hoặc HTML, tại sao lại có các Tab ở đó? Tại sao không chỉ có nó như là một tùy chọn trong cài đặt để sử dụng nó theo cách này hay cách khác? Hơn nữa, các tab ở đó theo mặc định ... đó không phải là một số tính năng hoặc tùy chọn nâng cao dành cho nhà phát triển mà bạn phải thiết lập. Tôi khá chắc chắn rằng nơi mà người dùng dự định có thể nhấp qua lại giữa và vấn đề thực sự là đôi khi họ không làm việc tốt với nhau. (đặc biệt trong trường hợp định dạng không gian)
luckykind

1
@luckykind Không, họ không có ý định chuyển đổi qua lại giữa họ. Đó chỉ là một vấn đề kiến ​​trúc TinyMCE . Và đó không phải là người duy nhất .
kaiser

3
Bạn không thể nói với tôi rằng một giao diện người dùng cung cấp các tab để chuyển đổi qua lại giữa HTML và chỉnh sửa trực quan không được sử dụng theo cách đó. Đã gần đến năm 2016 và vấn đề vẫn còn đó.
Eric J.

1
Tôi nghĩ rằng máy tính của tôi không có ý định bật nhưng vì nó có nút nguồn nên chúng tôi đã bật nó do đó tất cả các vấn đề là lỗi của người dùng. Thiết kế và mã là hoàn hảo rõ ràng.
AturSams

1

Tôi đang sử dụng Wordpress cho một blog tiếng Do Thái.

Giải pháp thay thế: Sao chép văn bản vào trình chỉnh sửa như siêu phàm hoặc notepad ++ và tìm kiếm và thay thế bằng không gian bình thường. Bạn có thể sao chép một trong số chúng từ văn bản.

Tuyên bố từ chối trách nhiệm: đây không phải là một câu trả lời nhiều và một cách giải quyết khác vì vậy hãy thoải mái tải xuống. Đối với tôi Wordpress đang vui vẻ thêm nbsp ở mọi nơi và không có vần điệu hay lý do. Không chắc chắn những gì gây ra nó. Nó đang xảy ra với văn bản tiếng Do Thái rất nhiều, nhiều hơn bất kỳ văn bản tiếng Anh nào.


0

Trong trường hợp có ai đó vẫn mắc kẹt với điều này vào năm 2020. Chúng tôi đã gặp vấn đề này sau khi chuyển một loạt nội dung sang Wordpress. Đoán xem, mọi người đã sao chép và dán thứ gì đó và chúng tôi kết thúc với quá nhiều nội dung để có thể sửa bằng tay. Tôi đã triển khai hàm php dưới đây và thêm nó vào hàm.php và nó đã giải quyết vấn đề cho chúng tôi.

    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 chỉ để đảm bảo bộ lọc này sẽ chạy cuối cùng, trong trường hợp những bộ lọc này  được thêm vào đâu đó ở giữa.


-1

Trong tập tin css. Đặt display: inline-flexvào p bên trong the excerpt. Các khoảng trắng bổ sung không làm phiền nữa. làm việc cho tôi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.