有些脚本和样式是与某个shortcode关联的,所以通常在该shortcode被使用时加载即可。WordPress 3.6新增的函数has_shortcode可以轻松检测内容中是否有某个shortcode,但有一个缺陷,就是不能检测嵌套在shortcode中的shortcode。
用has_shortcode函数完成上述功能,脚本如下
function your_shortcode_scripts() { global $post; if( isset($post->post_content) && has_shortcode( $post->post_content, 'your-shortcode') ) { wp_enqueue_script( 'whatever'); } } add_action( 'wp_enqueue_scripts', 'your_shortcode_scripts');
如果待检测的shortcode有可能被嵌套在其它shortcode中,上述方法会失效,推荐使用这里的方法。
function your_shortcode_scripts() { global $post; $shortcode = 'your-shortcode'; if( isset($post->post_content) && stripos($post->post_content, '[' . $shortcode) !== false ) { wp_enqueue_script( 'whatever'); } } add_action( 'wp_enqueue_scripts', 'your_shortcode_scripts');