Điều duy nhất bạn có thể lọc là các thuộc tính cho shortcode:
apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts );
Điểm là, đó $shortcode
là đối số thứ ba khi đăng ký một shortcode. Đối số này là khá mới và gần như không có shortcode nào sử dụng nó, do đó nó sẽ trở về mặc định - đó là một string
trong số đó ''
.
Điều này dẫn đến một kết quả hài hước:
add_filter( 'shortcode_atts_', 'wpse112294_shortcode_atts_cb' );
function wpse112294_shortcode_atts_cb( $out, $pairs, $atts )
{
// here we need to find a way to uniquely identify a shortcode
// for which we ain't got a name
// something that makes the shortcode unique:
$found = isset( $pairs['foo_attribute_key'] );
if ( $found )
{
// Instantly remove this filter to save processing time:
remove_filter( current_filter(), __FUNCTION__ );
// do something stunning in here!
}
return $out;
}
Vì vậy, vâng , với 90% cơ hội chúng ta cần lọc đầu ra của mọi shortcode (!) Và cố gắng xác định bằng cách nào đó xác định shortcode bằng một số đối số mặc định ( $pairs
) hoặc bằng các đối số đầu vào (không thể). Sau đó, cuối cùng chúng ta có thể xử lý đầu ra. Chúng ta có thể tự xử lý chuỗi không? Không. Điều này phải được thực hiện theo cách @s_ha_dum đã trình bày ở trên.
the_content
. Nó hoạt động cho trường hợp sử dụng của tôi.