[英]Wordpress Enqueue Js scripts
我無法讓wp_enqueue函數正常工作。 我看了所有的文檔,但是在篩選和查找應該去的地方時遇到了麻煩。
到目前為止,我知道我應該從正在創建的主題的functions.php文件中注冊並排隊文件。 這正是我所做的。 我創建了一些PHP標記,並將其放在頁面底部的中間。 保存並上傳。
當我重新加載時,它只會返回空白屏幕,一定是代碼中的錯誤或其他錯誤。
這是函數:
<?php
function add_scripts(){
wp_register_script('jquery', 'http://code.jquery.com/jquery-1.5.2.min.js');
wp_register_script('nivo', get_bloginfo('url').'/scripts/nivo.js');
wp_register_script('slimbox',get_bloginfo('url').'/scripts/slimbox2.js');
wp_register_script('picasa', get_bloginfo('url').'/scripts/jquery.EmbedPicasaGallery.js');
wp_register_script('pwi',get_bloginfo('url').'/jquery.pwi-min.js');
wp_register_script('swf', get_bloginfo('url').'/jquery.swfobject.1-1-1.min.js');
wp_register_script('simpletube',get_bloginfo('url').'/scripts/jquery.simpletube.js');
wp_register_script('jqvalidate', get_bloginfo('url').'/jquery.jqvalidate.js');
wp_enqueue_script('jquery');
wp_enqueue_script('nivo');
wp_enqueue_script('slimbox');
wp_enqueue_script('picasa');
wp_enqueue_script('pwi')
wp_enqueue_script('swf');
wp_enqueue_script('simpletube')
wp_enqueue_script('jqvalidate');
}
add_action('init','add_scripts');
?>
那么我的語法是否存在某種問題? 我對PHP沒有那么強。 任何幫助是極大的贊賞。 謝謝!
在沒有看到整個文件的情況下調試它有點困難,但是事實是您得到了“空白頁”,這表明某個地方肯定比語法問題還大。
您肯定有正確嵌套的php標簽嗎? 即
<?php
some code
<?php
some more code
?>
some more code
?>
會給你麻煩。
此外,現在通常的做法是在文件末尾保留最后一個?>
(這意味着在結束標記后留有空格不會有任何問題,這是不必要的)
最重要的是,您使用了wp_register_script('jquery'...)
-WordPress已經注冊了jquery。 如果要重新注冊,則需要先wp_deregister_script('jquery')
。 我也只會在管理員之外執行此操作,因此:
if(!is_admin()){wp_deregister_script('jquery'); <your wp_register_script stuff> }
如果這些方法都無濟於事,請復制並粘貼您的整個functions.php
文件(使用pastebin.com並給我們一個鏈接)
get_bloginfo('url')
說get_bloginfo('url')
,您多次使用get_bloginfo('url')
-這意味着您正在對數據庫運行許多不必要的調用。 將其粘貼到變量中並為自己節省一些開銷:
$my_url = get_bloginfo('wpurl');
wp_register_script('thing', $my_url.'/script/location/file.js');
哦! 還有一件事,我認為url
不是get_bloginfo()
的允許參數,我認為您想要wpurl
祝好運!
失蹤;
對於以下兩行:
wp_enqueue_script('pwi')
wp_enqueue_script('simpletube')
我將使用以下代碼代替您的代碼:
<?php
function add_scripts(){
wp_enqueue_script('jquery', 'http://code.jquery.com/jquery-1.5.2.min.js');
wp_enqueue_script('nivo', get_bloginfo('url').'/scripts/nivo.js');
wp_enqueue_script('slimbox',get_bloginfo('url').'/scripts/slimbox2.js');
wp_enqueue_script('picasa', get_bloginfo('url').'/scripts/jquery.EmbedPicasaGallery.js');
wp_enqueue_script('pwi',get_bloginfo('url').'/jquery.pwi-min.js');
wp_enqueue_script('swf', get_bloginfo('url').'/jquery.swfobject.1-1-1.min.js');
wp_enqueue_script('simpletube',get_bloginfo('url').'/scripts/jquery.simpletube.js');
wp_enqueue_script('jqvalidate', get_bloginfo('url').'/jquery.jqvalidate.js');
}
add_action('wp_enqueue_scripts', 'add_scripts');
因此,請注意,我已經刪除了“ wp_register_script”,因為如果您要在注冊后立即調用wp_enqueue,則完全不需要使用它。
wp_register_script
用於,以便以后可以在代碼中以其他方式調用它,而無需包括路徑。
另外一個很大的變化是我沒有從
init
但是我是從
wp_enqueue_scripts
另外,請考慮將其他參數添加到wp_enqueue_script中,例如
wp_enqueue_script( string $handle, string $src = '', array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.