Sửa lỗi trình soạn thảo wp_editor bên ngoài frontend

Khi bạn sử dụng hàm wp_editor của WordPress bên ngoài admin, đôi lúc bạn sẽ gặp trường hợp các dấu nháy kép của thuộc tính thẻ HTML bị thay đổi.

Lỗi dấu nháy kép cho các thuộc tính thẻ HTML trên editor
Lỗi dấu nháy kép cho các thuộc tính thẻ HTML trên editor

Như các bạn thấy trong hình bên trên, các dấu nháy kép " bị lỗi, đôi lúc thay bằng , đôi lúc thì thay bằng .

Để khắc phục tình trạng này, bạn có thể sử dụng cấu hình cho editor cũng như xử lý nội dung trước khi truyền vào editor như bên dưới:

$defaults = array(
	'field_id'         => '',
	'field_name'       => '',
	'field_value'      => '',
	'is_required'      => '',
	'field_type'       => 'text',
	'field_attributes' => '',
	'teeny'            => false,
	'editor_css'       => '',
	'quicktags'        => true,
	'fix_content'      => 1,
	'default_editor'   => 'tinymce'
);

Trong các tham số bên trên, bạn chỉ quan tâm đến default_editor chọn mặc định là tinymce. Khi bạn tải editor lần đầu thì nó sẽ hiển thị bên TinyMCE (visual), sau đó bạn chuyển sang trình soạn thảo HTML (văn bản) thì các dấu nháy kép sẽ tự chỉnh sửa.

Sử dụng các dòng code bên dưới để thay xóa tất cả các dấu nháy kép bị lỗi:

$value = $args['field_value'];
$value = wp_unslash( $value );

if ( $args['fix_content'] ) {
	$value = esc_attr( $value );
	$value = str_replace( '<', '<', $value );
	$value = str_replace( '>', '>', $value );
	$value = str_replace( '"', '', $value );
}

Cuối cùng là bạn chỉ việc truyền content (biến $value) vào trong hàm wp_editor là được nhé. Chúc bạn thành công.

5/5 - (2 bình chọn)

Lại Đình Cường

Tôi làm quen và phát triển WordPress từ năm 2008, cho đến nay thì đã có hơn 13 năm kinh nghiệm, thật không thể tin được. Tôi có đam mê và dành nhiều thời gian làm việc với WordPress mỗi ngày, hiện tại tôi đang phát triển giao diện và plugin cho WordPress.

Nếu bạn đang cần người làm trang web bằng WordPress? Hãy liên hệ với tôi ngay để được tư vấn nhé.