Das einzige, was Sie filtern können, sind die Attribute für den Shortcode:
apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts );
Punkt ist, das $shortcode
ist das dritte Argument bei der Registrierung eines Shortcodes. Dieses Argument ist ziemlich neu und wird von fast keinem Shortcode verwendet. Daher wird auf die Standardeinstellung zurückgegriffen - eine string
von ''
.
Dies führt zu einem lustigen Ergebnis:
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;
}
Also, ja , mit einer 90% igen Chance müssen wir die Leistung von jedem (!) Shortcode filtern und versuchen, irgendwie den Shortcode zu identifizieren , indem sie entweder einig Standardargumente ( $pairs
) oder durch Eingabeargumente (unmöglich). Dann können wir endlich die Ausgabe verarbeiten. Können wir den String selbst verarbeiten? Nein. Dies muss so erfolgen, wie @s_ha_dum oben gezeigt hat.
the_content
. Es funktioniert für meinen Anwendungsfall.