在特定页面上加载脚本

时间:2012-06-29 作者:AlxVallejo

我倾向于将wp\\u enqueue\\u脚本挂钩放在函数上。php,但这最终会在我的网站上堆积脚本。

哪个更有意义?

1:

function load_slider(){
  global $post;
  if($post->ID == 11746){ //  Load slider on home page
    wp_register_script(\'start-slidorion\', get_bloginfo(\'stylesheet_directory\') . \'/js/slidorion/start.js\', array(\'slidorion\', \'jquery\',\'easing\') );
    wp_enqueue_script(\'start-slidorion\' );
  }
} 
add_action(\'wp_enqueue_scripts\', \'load_slider\');

2:

function load_slider(){
    wp_register_script(\'start-slidorion\', get_bloginfo(\'stylesheet_directory\') . \'/js/slidorion/start.js\', array(\'slidorion\', \'jquery\',\'easing\') );
    wp_enqueue_script(\'start-slidorion\' );
} 
global $post;
if($post->ID == 11746){ //  Load slider on home page
    add_action(\'wp_enqueue_scripts\', \'load_slider\');
}

1 个回复
最合适的回答,由SO网友:Milo 整理而成

方法二不起作用,因为还没有加载页面,并且在if检查运行时没有设置$post。

对于方法1,此时还没有设置$post,但如果使用WordPress conditionals:

function load_slider(){
  if( is_page(11746) ){ //  Load slider on home page
    wp_register_script(\'start-slidorion\', get_bloginfo(\'stylesheet_directory\') . \'/js/slidorion/start.js\', array(\'slidorion\', \'jquery\',\'easing\') );
    wp_enqueue_script(\'start-slidorion\' );
  }
} 
add_action(\'wp_enqueue_scripts\', \'load_slider\');
EDIT 另一个示例使用has_term:

function load_slider(){
    global $post;   
    if( has_term( \'your category\', \'category\', $post ) ):
        // enqueue your script
    endif;
} 
add_action(\'wp_enqueue_scripts\', \'load_slider\');

结束

相关推荐

Performance on WPMS

我的WPMS站点托管在8核/32mb RAM服务器上,但响应时间非常长。我们有大约1000个博客(单个db上有35000多个表)和70000个页面浏览量。我认为我可以缩短响应时间,将具有更多页面浏览量的博客移动到单独的DB中,并使用hyper DB插件将所有博客拆分为每个DB 100个博客。你觉得怎么样?