1

<?php wp_head(); ?>

与其他两个 jQuery 脚本冲突时直接在顶部移动后

<head> section

这只发生在产品页面中。

<?php wp_head(); ?> conflicts with jQzoom.js and Navigation/jquery1.js on Products page.

当我把

<?php wp_head(); ?> 

多于

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jq/jquery.jqzoom-core.js"> 

然后 jQzoom 停止在产品页面上工作,当我在 Navigation/jquery1.js 之前放置 if 时,导航停止在产品页面上工作。

<script src="<?php echo get_template_directory_uri(); ?>/js/navigation/jquery1.js" type="text/javascript"></script>.

一切正常

<?php wp_head(); ?> 

就在最后

</head> section.

我需要

<?php wp_head(); ?>

由于搜索引擎优化,就在部分之后的顶部。

这是我正在处理的网站的链接http://www.nsmmusic.com问题恰好在此页面上http://www.nsmmusic.com/products/digital-jukeboxes/icon-lite/(提前致谢。)

4

2 回答 2

3

避免资产冲突的最佳方法是正确地对文件进行排队。为此,您必须使用wp_enqueue_script

一个好的方法是把它作为函数的一部分放在你的functions.php文件中,就像这样

  1. 创建一个函数
  2. 插入wp_register_script函数
  3. 然后插入wp_enqeue_script到函数中
  4. 使用 add_action() 来初始化入队过程

所以 -

function load_scripts() {
  wp_register_script( 'script-name', get_template_directory_uri() . '/js/script.js', array( 'scriptyouwillwaittobeloaded' ) );
  wp_enqueue_script( 'script-name' );
}

add_action('wp_enqueue_scripts', 'load_scripts');

在此示例中,该函数load_scripts()将在 header.php 文件中调用。看看wp_register_script以及更好地理解它的论点,但总而言之 -

第一个参数:是您要用作此脚本引用的名称

第二个参数:是脚本的实际链接

第三个参数:是您要在此脚本之前加载的脚本(您要在此脚本加载之前等待的脚本)


而对于 wp_enqueue_script,参数只是对名称的引用(wp_register_script 的第一个参数)


add_action 函数参数:

第一个参数:你“挂钩”的函数

第二个参数:您创建的将被“挂钩”的函数

于 2013-09-25T15:19:17.557 回答
1

我使用以下方法添加了大部分冲突的 jQuery 脚本:

function et_load_my_scripts(){
if ( !is_admin() ){
    $template_dir = get_template_directory_uri();
    wp_enqueue_script('navigation', $template_dir . '/js/navigation/jquery1.js', array('jquery'), '1.0', true);
    wp_enqueue_script('navigation1', $template_dir . '/js/navigation/nav_touch.js', array('jquery'), '1.0', true);
    wp_enqueue_script('jqzoom', $template_dir . '/js/jq/jquery.jqzoom-core.js', array('jquery'), '1.0', true);

}
if ( is_singular() && get_option( 'thread_comments' ) ) wp_enqueue_script( 'comment-reply' );

$et_gf_enqueue_fonts = array();
$et_gf_heading_font = sanitize_text_field( et_get_option( 'heading_font', 'none' ) );
$et_gf_body_font = sanitize_text_field( et_get_option( 'body_font', 'none' ) );

if ( 'none' != $et_gf_heading_font ) $et_gf_enqueue_fonts[] = $et_gf_heading_font;
if ( 'none' != $et_gf_body_font ) $et_gf_enqueue_fonts[] = $et_gf_body_font;

if ( ! empty( $et_gf_enqueue_fonts ) ) et_gf_enqueue_fonts( $et_gf_enqueue_fonts ); }

add_action( 'wp_enqueue_scripts', 'et_load_my_scripts' );

感谢您的帮助:)

于 2013-09-26T14:49:16.280 回答