Wordpress Enqueue Js скрипты - PullRequest
1 голос
/ 09 мая 2011

У меня проблемы с получением функций wp_enqueue.Я просмотрел всю документацию по нему, но у меня возникли проблемы с просеиванием и выяснением того, что и куда должно идти.

, насколько я понимаю, я должен регистрировать и ставить в очередь файлы из функций.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.Любая помощь очень ценится.Спасибо!

Ответы [ 3 ]

2 голосов
/ 09 мая 2011

Трудно отладить его, не видя весь файл, но тот факт, что вы получаете «пустую страницу», предполагает, что где-то определенно есть что-то большее, чем проблема синтаксиса.

У вас точно есть правильно вложенные теги 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') несколько раз - это означает, что вы выполняете много ненужных вызовов в базу данных. Вставьте его в переменную и сэкономьте немного накладных расходов:

$my_url = get_bloginfo('wpurl');

wp_register_script('thing', $my_url.'/script/location/file.js');

Oh! Еще одна вещь, я не думаю, что url является допустимым аргументом для get_bloginfo() Я думаю, вы хотите wpurl

Страница кодекса в функции get_bloginfo ()

Удачи!

1 голос
/ 09 мая 2011

Отсутствует ; для следующих двух строк:

wp_enqueue_script('pwi')
wp_enqueue_script('simpletube')
0 голосов
/ 21 января 2017

Вместо вашего кода я бы использовал:

<?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 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...