Я прочитал раздел кодекса на wp-enqueue, но все еще борюсь.
По сути, я хотел бы, чтобы следующее отображалось правильно в области виджетов моей темы (на каждой странице):
<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_enqueue и куда вставить последующий код (functions.php темы?)?
Спасибо.
Я пробовал следующее:
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);
}
Кажется, загружаются два скрипта, когда я просматриваю исходный код страницы, но не jquery google, и содержимое не отображается…
теперь у меня есть следующее, все еще ничего (появляются два скрипта, но не 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);
Последнее редактирование.. (я действительно хочу, чтобы переполнение стека приняло более удобную систему потоковой передачи: /)
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');
Сработало???
нет, по какой-то причине я уверен, что напортачил. кажется, что скрипты загружаются, но фактическое содержимое не отображается.
@Dijo Дэвид, пожалуйста, посмотрите мои исправления
@vulgarbulgar вы не использовали wp_enqueue_script(‘jquery’);
@vulgarbulgar Как ты вызываешь функцию в functions.php? Я отредактировал и добавил еще 1 чернила для справки.
@Dijo Дэвид Отредактировано. см. исправления выше
@vulgarbar is_admin() проверяет, является ли текущая страница панелью администратора или приборной панелью. Так что не будет конфликтов, когда вы находитесь в админке. Как вы вызываете этот код? Поместите весь код внутри функции и вызовите функцию в init. Это сработало для меня.
@vulgarbulgar Хм, я не уверен, что предположительно сейчас не так, в Edit 2 нет ничего плохого. Что сейчас не работает?
@tfbox demo.tutorialzine.com/2010/05/… — просто пытаюсь включить это по существу в область виджетов. пока тестирую страницу, пока она вообще не заработает.
@vulgarbulgar — мне нравится, хорошо выглядит. Так что же сейчас не работает через wordpress?
@tfbox ха-ха, это не моя — это демо-версия 🙂 я бы хотел, чтобы это работало в моем wp
На самом деле вам больше не нужно беспокоиться о конфликте со страницами администратора. Существует хук «wp_enqueue_scripts», который гарантирует, что скрипты не вызываются на страницах администратора.
Из Кодекса WP:
Но если вам нужно специальное ядро jQuery (или надстройка) для страниц администрирования, вам нужно будет использовать хук «init» с условием !admin.
Взгляните на эту ссылку:
5 советов по использованию jquery с wordpress
Вы можете добавить скрипты, вызвав функцию в functions.php.
Вот пример того, как это сделать:
Также будет полезна эта ссылка.
РЕДАКТИРОВАТЬ:
Попробуй это
Лучшее место в файле functions.php.
Пример:
Массив false поставит скрипт в очередь в верхний колонтитул, где вы определите.
wp_header();
Если вы установите для него значение true, он поставит скрипт в нижний колонтитул, где вы определитеwp_footer();
Изменить :
В вашем исправленном сообщении у вас есть этот код
Обратите внимание, что вы поместили 2 скрипта, которые хотите поставить в очередь, внутри условного оператора, что если не администратор — сделайте это —
Это может быть причиной того, что это не работает для вас.
Редактировать 2
Немного подчистил, вернул jquery в условный оператор и поставил на него false.
Также каждый новый сценарий, который вы ставите в очередь, должен иметь уникальное имя. Оба ваших называются custom_script