正在尝试在WordPress中将脚本入队

时间:2011-03-21 作者:vulgarbulgar

我读过法典中关于wp enqeue的部分,但仍在苦苦挣扎。

基本上,我希望在我的主题的小部件区域(在每个页面上)正确显示以下内容:

<link rel="stylesheet" type="text/css" href="/wp-content/uploads/social_counter/css/styles.css" />
<link rel="stylesheet" type="text/css" href="/wp-content/uploads/social_counter/css/tipTip.css" />

<div id="social_counter">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="/wp-content/uploads/social_counter/js/jquery.tipTip.minified.js"></script>
<script type="text/javascript" src="/wp-content/uploads/social_counter/js/social_counter.js"></script>
</div>
我创建了一个文本小部件,将代码粘贴到其中,但它破坏了模板中的一些内容,因为jquery已经由主题和/或其他插件加载,因此可能存在冲突。

有没有人能告诉我如何使用wp\\u enqueue来最好地构建它,以及在哪里粘贴后续代码(functions.php of theme?)?

谢谢

我尝试了以下方法:

if(!is_admin()){
wp_deregister_script( \'jquery\' );
wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js\');
wp_enqueue_script(\'custom_script\',get_bloginfo(\'wpurl\').\'/wp-content/uploads/social_counter/js/jquery.tipTip.minified.js\',false);
wp_enqueue_script(\'custom_script\',get_bloginfo(\'wpurl\').\'/wp-content/uploads/social_counter/js/social_counter.js\',array(\'jquery\'),\'1.4.2\',false);
}
当我查看页面源代码时,似乎加载了其中两个脚本,但没有加载google jquery,并且内容不显示。。。

现在我有以下内容,但仍然没有(显示了两个脚本,但没有google jquery):

wp_deregister_script( \'jquery\' );
wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js\');
wp_enqueue_script( \'jquery\' );
wp_enqueue_script(\'custom_script\',get_bloginfo(\'wpurl\').\'/wp-content/uploads/social_counter/js/jquery.tipTip.minified.js\',false);
wp_enqueue_script(\'custom_script\',get_bloginfo(\'wpurl\').\'/wp-content/uploads/social_counter/js/social_counter.js\',array(\'jquery\'),\'1.4.2\',false);
最新编辑。。(我真希望堆栈溢出采用mroe用户友好的线程系统:/)

function add_scripts(){
// Load jQuery
if ( !is_admin() ) {
   wp_deregister_script(\'jquery\');
   wp_register_script(\'jquery\', ("http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"), false);
   wp_enqueue_script(\'jquery\');
}
// Your Scripts
wp_enqueue_script(\'custom_script\',get_bloginfo(\'wpurl\').\'/wp-content/uploads/social_counter/js/jquery.tipTip.minified.js\',false);
wp_enqueue_script(\'custom_script\',get_bloginfo(\'wpurl\').\'/wp-content/uploads/social_counter/js/social_counter.js\',array(\'jquery\'),\'1.4.2\',false);
}
add_action(\'init\',\'add_scripts\');

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

实际上,您不需要再担心与管理页面的冲突。有一个“wp\\u enqueue\\u scripts”挂钩,确保不会在管理页面上调用脚本。

来自WP Codex:

<?php
function my_scripts_method() {
  wp_deregister_script( \'jquery\' );
  wp_register_script( \'jquery\',    \'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js\');
  wp_enqueue_script( \'jquery\' );
}    

add_action(\'wp_enqueue_scripts\', \'my_scripts_method\');
?>
但是,如果您需要一个用于管理页面的自定义jQuery核心(或附加组件),则需要将“init”挂钩与一起使用!管理条件。

SO网友:Dijo David

请查看此链接:

5-tips-for-using-jquery-with-wordpress

可以通过调用中的函数来添加脚本functions.php.

下面是一个如何执行此操作的示例:


function add_scripts(){
        wp_register_script(\'scriptName\', \'Path to the script\'); //Register script
        wp_enqueue_script(\'jquery\'); 
        wp_enqueue_script(\'scriptName\'); //adding script

    }
    add_action(\'init\',\'add_scripts\'); //calling function in init
还有这个link 会很有帮助的。

EDIT:

试试这个

function add_scripts(){
// Load jQuery
if ( !is_admin() ) {
   wp_register_script(\'jquery\', ("http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"), false);
   wp_enqueue_script(\'jquery\');
}
// Your Scripts
wp_register_script(\'script1\', get_bloginfo(\'url\').\'/wp-content/uploads/social_counter/js/jquery.tipTip.minified.js\');
wp_register_script(\'script2\',get_bloginfo(\'url\').\'/wp-content/uploads/social_counter/js/social_counter.js\',array(\'jquery\'),\'1.4.2\',false);
wp_enqueue_script(\'script1\');
wp_enqueue_script(\'script2\');
}
add_action(\'init\',\'add_scripts\');

SO网友:Daryl

最好的地方是你的functions.php.

Example:

wp_enqueue_script("name", ("path/to/file"), false);
false数组将脚本排入标头,在标头中定义wp_header(); - 如果将其设置为true,它会将脚本排入您定义的页脚中wp_footer();

Edit:

wp_enqueue_script(\'yourscriptname\', get_bloginfo(\'stylesheet_directory\') . \'/js/jsyourscript.js\');
在修改后的帖子中,您有以下代码

if(!is_admin()){
wp_deregister_script( \'jquery\' );
wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js\');
wp_enqueue_script(\'custom_script\',get_bloginfo(\'wpurl\').\'/wp-content/uploads/social_counter/js/jquery.tipTip.minified.js\',false);
wp_enqueue_script(\'custom_script\',get_bloginfo(\'wpurl\').\'/wp-content/uploads/social_counter/js/social_counter.js\',array(\'jquery\'),\'1.4.2\',false);
}
请注意,您已经放置了要排队的2个脚本inside 条件语句,如果not 管理-执行此操作-

这可能是它似乎对你不起作用的原因。

Edit 2

// Load jQuery
if ( !is_admin() ) {
   wp_deregister_script(\'jquery\');
   wp_register_script(\'jquery\', ("http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"), false);
   wp_enqueue_script(\'jquery\');
}
// Your Scripts
wp_enqueue_script(\'custom_script\',get_bloginfo(\'wpurl\').\'/wp-content/uploads/social_counter/js/jquery.tipTip.minified.js\',false);
wp_enqueue_script(\'custom_script2\',get_bloginfo(\'wpurl\').\'/wp-content/uploads/social_counter/js/social_counter.js\',array(\'jquery\'),\'1.4.2\',false);
稍微整理一下,将jquery放回条件语句中,也将false放回条件语句中。

此外,您排队的每个新脚本都必须具有unique name. 你俩都被叫来了custom_script

结束

相关推荐

Comment Reply javascript

我在一个客户网站上工作,这是一个非常精简的主题。它没有标准的html标记,因此回复框不会移动到您点击回复按钮的评论下方。有人能告诉我所需的最低标记吗?我正在尝试一个接一个地添加类。Trying to explain it better:我点击回复按钮,页面重新加载,评论表单停留在所有评论列表的下方。我想让它像我们点击回复按钮一样工作,然后在没有任何页面重新加载的情况下,它会跳到那里,并可以取消返回到该位置。我们在2010年的默认值Update:我设法修复了标记,现在我正在使用comment\\u form