01/10/2018, 17:31

Lỗi không xuống dòng được khi dùng hàm strip_shortcodes()

Giả sử chúng ta soạn thảo một post có nội dung như sau: Góc Kinh Nghiệm xin chào bà con! Các bạn vẫn khỏe chứ? [my_short_code id="2"] Nhưng khi hiển thị bạn muốn loại bỏ shortcode, và chỉ muốn hiển thị text của bài post mà thôi. Chính vì vậy mà dùng hàm strip_shortcodes() để loại bỏ ...

Giả sử chúng ta soạn thảo một post có nội dung như sau:

Góc Kinh Nghiệm xin chào bà con!
Các bạn vẫn khỏe chứ?
[my_short_code id="2"]

Nhưng khi hiển thị bạn muốn loại bỏ shortcode, và chỉ muốn hiển thị text của bài post mà thôi. Chính vì vậy mà dùng hàm strip_shortcodes() để loại bỏ shortcode [my_short_code id=”2″] ở trên.

Code dùng hàm strip_shortcodes() như sau:

$content = $post->post_content;
echo strip_shortcodes($content);

Thì thu được kết quả như sau:

Góc Kinh Nghiệm xin chào bà con!Các bạn vẫn khỏe chứ?

Như chúng ta thấy đấy, hàm strip_shortcodes() đã loại bỏ ký tự xuống hàng của bài post của chúng ta, dẫn đến 2 câu trên dính lại với nhau. Để khắc phục điều này trước khi dùng hàm strip_shortcodes() chúng ta dùng hàm nl2br() của PHP để chuyển những ký tự xuống dòng sang thẻ <br/> của html. Thì lúc đó hàm strip_shortcodes() sẽ không lọc bỏ ký tự xuống dòng.

Code được viết lại như sau:

$content = nl2br( $post->post_content);
echo strip_shortcodes($content);

Kết quả thu được như mong đợi:

Góc Kinh Nghiệm xin chào bà con!
Các bạn vẫn khỏe chứ?

Góc Kinh Nghiệm chúc các bạn thành công! :grin:


0