изменение шаблона и добавление в него jQuery
Существует шаблон страницы под названием "Все закладки" для отображения всех ссылок, сгруппированных по категориям. Я хочу изменить его 2 способами:
- каждая категория ссылок должна быть складной/расширяемой, нажав на заголовок категории
- шаблон должен принимать список категорий для включения или исключения
Для разборной части, предположительно, мне нужно только добавить класс в заголовок каждой категории, чтобы мой код jQuery мог повлиять на них. Для ограничение категории, предположительно, мне нужен способ передачи параметров в шаблон. Тем не менее, я полный новичок в WP, и я не знаю
- куда поместить код jQuery
- следует ли добавить класс в шаблон или создать новый шаблон
- где хранить новый шаблон, чтобы он был доступен для страниц
- если шаблоны могут принимать параметры или если шаблон должен ссылаться на пользовательскую функцию PHP
- где хранить пользовательский PHP функции
Я бродил вокруг WordPress.org на какое-то время становясь все более и более разочарованным. Я был бы признателен, если бы кто-нибудь мог ответить на вышеуказанные вопросы и, возможно, указать мне на хорошее объяснение структуры кода WP.
Спасибо!
Version: WP 3.1
Theme: Suffusion 3.7.7
1 answers
Вместо того, чтобы изменять шаблон, так как вам все равно понадобится jQuery, вы можете сделать это..
Добавить в functions.php
add_action( 'wp_enqueue_scripts', 'blogroll_toggles' );
function blogroll_toggles() {
if( is_page_template( 'bookmarks.php' ) )
wp_enqueue_script( 'blogroll-toggle', get_bloginfo( 'stylesheet_directory' ) . '/blogroll-toggle.js', array( 'jquery' ) );
}
Или создайте новую папку в папке wp-content/plugins/
, создайте файл внутри новой папки, напримерblogroll-plugin.php , и добавьте следующее.
<?php
/*
Plugin Name: Suffusion Blogroll Toggles
*/
add_action( 'wp_enqueue_scripts', 'blogroll_toggles' );
function blogroll_toggles() {
if( is_page_template( 'bookmarks.php' ) )
wp_enqueue_script( 'blogroll-toggle', plugins_url( '/blogroll-toggle.js', __FILE__ ), array( 'jquery' ) );
}
Функция в основном будет помещаться в очередь в сценарии всякий раз, когда страница загружается с прикрепленным к ней шаблоном закладок. jQuery устанавливается как зависимость для сценария, поэтому нет необходимости загружать это отдельно.
Создайте файл в папке темы (или плагина) и назовите его blogroll-toggle.js , затем поместите следующий код в этот файл.
jQuery(document).ready( function($) {
// Hide the blogroll lists
$('div.entry ul.blogroll').hide();
// Attach a click function to the headings
$('div.entry h4').click( function() {
// Make sure we're targeting the blogroll heading, if not, stop here(do nothing)
if( !$(this).next('ul.blogroll') )
return false;
// Toggle the blogroll list that follows the heading
$(this).next('ul.blogroll').toggle();
});
});
JQuery не проверен, но он должен работать (я делал переключения десятки раз).
ПРИМЕЧАНИЕ: При использовании в качестве плагина не забудьте активировать его, как и любой другой плагин.
Если возникнут проблемы с кодом, дайте мне знать. :)