简体   繁体   中英

Wordpress - is_single() -> Load scripts of plugin, in footer

I'm trying to load the scripts of kk Star Rating plugin , in footer and, only in single.

I edited the plugin, and the load in footer is ok, but this show in every page.

I want to load only in single post.

This is the original code :

add_action('wp_footer', array($kkStarRatings_obj, 'js'));
add_action('wp_footer', array($kkStarRatings_obj, 'css'));
add_action('wp_footer', array($kkStarRatings_obj, 'css_custom'));
add_action('admin_init', array($kkStarRatings_obj, 'admin_scripts'));

I try this:

if ( is_single() ) {
    add_action('wp_footer', array($kkStarRatings_obj, 'js'));
    add_action('wp_footer', array($kkStarRatings_obj, 'css'));
    add_action('wp_footer', array($kkStarRatings_obj, 'css_custom'));
    add_action('admin_init', array($kkStarRatings_obj, 'admin_scripts'));
  }

and this:

add_action('wp_enqueue_scripts','copy_script');

function copy_script() {
   if ( is_single() ) {
    add_action('wp_footer', array($kkStarRatings_obj, 'js'));
    add_action('wp_footer', array($kkStarRatings_obj, 'css'));
    add_action('wp_footer', array($kkStarRatings_obj, 'css_custom'));
    add_action('admin_init', array($kkStarRatings_obj, 'admin_scripts'));
  }
}

but anything does work, how can I make this?

Use is_singular('post') :

add_action('wp_enqueue_scripts', 'copy_script');

function copy_script() {
    if ( is_singular('post') ) {
        add_action('wp_footer', array($kkStarRatings_obj, 'js'));
        add_action('wp_footer', array($kkStarRatings_obj, 'css'));
        add_action('wp_footer', array($kkStarRatings_obj, 'css_custom'));
    }
}

I removed the admin scripts because I don't think you need them in a single post.

PS: you should enqueue the scripts using wp_enqueue_script and wp_enqueue_style .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM