如果这是您自己开发的一个短代码,那么您可以添加url参数检查/获取,例如如下所示,
add_shortcode( \'EmbedMe\', \'embedme_callback\' );
function embedme_callback( $atts ) {
$defaults = array(
\'file\' => \'\'
);
$atts = shortcode_atts( $defaults, $atts, \'EmbedMe\' );
if (
\'source\' === $atts[\'file\']
&& ! empty( $_GET[\'source\'] )
&& $file = esc_url_raw( $_GET[\'source\'], array( \'http\', \'https\' ) )
) {
$atts[\'file\'] = $file;
}
// some code
return $html;
}
在上面,我们检查file属性是否设置为“source”,并且它是否也设置为GET(url)参数。为了更好地衡量,url参数通过escape函数传递,以确保其格式正确。
如果短代码是由其他人开发的,那么您应该检查它是否提供了修改属性(或输出)的过滤器。如果是这样,那么可以将自定义函数挂接到过滤器,并在函数内部执行GET参数检查。就像这样,
add_filter( \'shortcode_atts_EmbedMe\', \'filter_EmbedMe_atts\' );
function filter_EmbedMe_atts( $atts ) {
if (
isset( $atts[\'file\'] )
&& \'source\' === $atts[\'file\']
&& ! empty( $_GET[\'source\'] )
&& $file = esc_url_raw( $_GET[\'source\'], array( \'http\', \'https\' ) )
) {
$atts[\'file\'] = $file;
}
return $atts;
}