我想在执行短代码时调用/添加/枚举javascript文件。
以下是我的代码,请让我知道我在做什么。
add_shortcode('footprint', 'do_footprint');
function do_footprint()
{
add_action( 'wp_enqueue_scripts', 'pace_enque_map_scripts' );
ob_start();
?>
<div id="map"></div>
<?php
return ob_get_clean();
}
function pace_enque_map_scripts()
{
wp_enqueue_script( 'my-js', 'filename.js', false );
}
当我调用动作挂钩直接添加javascript时,它可以工作。但是当我在函数中调用动作钩子时它不起作用。
请指导
答案 0 :(得分:1)
你可以这样做,
function do_footprint() {
ob_start(); ?>
<div id="map"></div>
<?php
return ob_get_clean();
}
add_shortcode('footprint', 'do_footprint');
function pace_enque_map_scripts() {
global $post;
//check shortcode existence in post content and enque script if found
if( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'footprint') && !is_admin() ) {
wp_enqueue_script( 'my-js', 'filename.js', false );
}
}
add_action( 'wp_enqueue_scripts', 'pace_enque_map_scripts');