изменение шаблона и добавление в него jQuery


Существует шаблон страницы под названием "Все закладки" для отображения всех ссылок, сгруппированных по категориям. Я хочу изменить его 2 способами:

  • каждая категория ссылок должна быть складной/расширяемой, нажав на заголовок категории
  • шаблон должен принимать список категорий для включения или исключения

Для разборной части, предположительно, мне нужно только добавить класс в заголовок каждой категории, чтобы мой код jQuery мог повлиять на них. Для ограничение категории, предположительно, мне нужен способ передачи параметров в шаблон. Тем не менее, я полный новичок в WP, и я не знаю

  • куда поместить код jQuery
  • следует ли добавить класс в шаблон или создать новый шаблон
  • где хранить новый шаблон, чтобы он был доступен для страниц
  • если шаблоны могут принимать параметры или если шаблон должен ссылаться на пользовательскую функцию PHP
  • где хранить пользовательский PHP функции

Я бродил вокруг WordPress.org на какое-то время становясь все более и более разочарованным. Я был бы признателен, если бы кто-нибудь мог ответить на вышеуказанные вопросы и, возможно, указать мне на хорошее объяснение структуры кода WP.

Спасибо!

Version: WP 3.1
Theme: Suffusion 3.7.7
Author: dnagirl, 2011-03-02

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 не проверен, но он должен работать (я делал переключения десятки раз).

ПРИМЕЧАНИЕ: При использовании в качестве плагина не забудьте активировать его, как и любой другой плагин.

Если возникнут проблемы с кодом, дайте мне знать. :)

 3
Author: t31os, 2011-03-03 14:17:16