簡體   English   中英

WordPress排隊Js腳本

[英]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

get_bloginfo()函數上的Codex頁面

祝好運!

失蹤; 對於以下兩行:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM