Tôi gặp vấn đề tương tự và sau khi xem qua số list of all WordPress filter hooks của Adam Brown, thấy rằng móc tôi cần không tồn tại (widget_title
, như đề cập pxl), nhưng không có móc để lấy tất cả đầu ra của tiện ích con. Tôi nghĩ tôi sẽ giải thích về giải pháp đã làm việc cho tôi. Về mặt lý thuyết, móc widget_title
sẽ ảnh hưởng đến tất cả các tiện ích trên blog của bạn, nhưng tôi chắc chắn một số tiện ích của bên thứ ba bỏ qua để bao gồm dòng mã cần thiết để áp dụng bất kỳ bộ lọc tiêu đề nào, vì vậy nó không dễ dàng. Nó làm việc cho tôi, tuy nhiên, và nó có thể được sử dụng để áp dụng 'shortcode' tùy chỉnh (chính xác hơn, trong trường hợp này là 'longcode') hoặc các cú pháp cho tiêu đề widget của bạn. Ví dụ: tôi muốn thỉnh thoảng đưa mã html vào tiêu đề tiện ích của mình, nhưng theo mặc định, tất cả html đều bị loại bỏ. Vì vậy, để có thể thêm những thứ như <em>
thẻ vào văn bản trong một số chức danh của tôi, tôi đã chọn một cú pháp tùy chỉnh: [[
thay vì <
& ]]
thay vì >
(cho ex, [[em]]
và [[/em]]
) và sau đó tạo ra một hàm trong chức năng của chủ đề của tôi.tập tin php để xử lý mà cú pháp tùy chỉnh và thay thế bằng html tương đương:
function parse_html_widget_title($text) {
return str_replace(array('[[', ']]'), array('<', '>'), $text);
}
Sau đó, tôi đã thêm một dòng dưới nó để thêm các chức năng như một bộ lọc:
add_filter('widget_title', 'parse_html_widget_title', 11); // 11 is one above the default priority of 10, meaning it will occur after any other default widget_title filters
Chức năng add_filter
/apply_filter
tự động chuyển nội dung đang được lọc làm tham số đầu tiên cho hàm được chỉ định làm bộ lọc, vì vậy đó là tất cả những gì bạn cần làm.
Để làm điều gì đó tương tự cho đầu ra chính của tiện ích, bạn sẽ cần xem tất cả các tiện ích của mình để xem móc nào họ sử dụng và xác minh rằng chúng có bộ lọc cho đầu ra chính của chúng, sử dụng add_filter()
cho mỗi hook bạn tìm thấy với chức năng gọi lại tùy chỉnh của mình (ví dụ: widget_text
cho đầu ra của Tiện ích văn bản hoặc get_search_form
cho biểu mẫu tìm kiếm [bạn có thể thấy nó trong wp-includes/general-template.php, tại hàm get_search_form()
]). Vấn đề là một số widget được tạo động không có móc (như widget Meta), đó là lý do tại sao giải pháp đệm đầu ra mà Jeff cung cấp là giải pháp linh hoạt nhất, mặc dù không lý tưởng.
Tôi không chắc chắn khi họ giới thiệu bộ lọc widget_text, có thể họ không có nó trong ' 09 khi câu hỏi này ban đầu được hỏi. Xem mã mẫu của tôi bên dưới trong câu trả lời của tôi cho một ví dụ làm việc hoàn chỉnh (và rất đơn giản). –