SyntaxHighlighter xuất ra 1 khi dùng do_shortcode

Cập nhật lần cuối vào

Bạn đang dùng hàm do_shortcode để xuất ra màn hình các shortcode được cung cấp bởi những plugin cho phép chèn code vào bài viết. Cụ thể hơn ở đây mình sử dụng plugin SyntaxHighlighter Evolved để chia sẻ source code trong bài viết.

Nếu bạn dùng cú pháp thông thường trong nội dung bài viết thì không sao, tuy nhiên bây giờ bạn lại muốn sử dụng shortcode tùy biến, trong giao diện bạn muốn dùng hàm do_shortcode để xuất ra một shortcode cụ thể nào đó, nhưng kết quả lại hiển thị ra là số 1.

echo do_shortcode('[[html]' . 'text/html' . '[/html]]');

Nếu như thông thường thì hàm bên trên sẽ hiển thị ra nội dung bên trong shortcode theo kiểu định dạng syntax của plugin. Nhưng bây giờ, khi bạn thực thi hàm bên trên thì kết quả sẽ trả về là số 1. Để khắc phục tình trạng này thì bạn sử dụng hook đơn giản như bên dưới.

$data = 'text/html';
$data = apply_filters('the_content', $data);

Như vậy là lỗi của bạn đã được khắc phục, khi chúng ta áp dụng bộ lọc the_content thì các shortcode bên trong nội dung cũng sẽ thay đổi theo, bạn không cần phải dùng hàm do_shortcode như bên trên nữa. Chúc bạn thành công.