WordPress. Обзор фреймворков

theme_frameWordPress-фреймворк это обычная WordPress-тема, разработанная в качестве гибкой основы, служащая родительской темой, для создания дочерней темы. Хотя еще не все оценили фреймворки по достоинству, они все равно приносят большую пользу WordPress-сообществу, посредством качественного кода и большим количеством дочерних тем.

Существует ряд причин, по которым вам стоит использовать WordPress-фреймворк

  • Возможность построить практически любой тип сайта.
  • Если вы не знаете, как создать собственную WordPress-тему с нуля.
  • Валидный и семантический XHTML.
  • Если вы планируете научиться создавать тему WordPress.
  • Если вы веб-разработчик и нуждаетесь в быстром создании сайтов для клиентов.
  • SEO-оптимизированная тема.
  • Поддержка множества популярных плагинов.
  • Динамические стили body и возможность быстрого изменения любой страницы с помощью css.
  • Возможность использования микроформатов.

6 Фреймворков, которые помогут вам создать следующую убойную тему для WordPress

SandBox

06_sandbox

Наверное, первый настоящий WordPress-фреймворк. Sandbox – это полезный и впечатляющий инструмент, доступный для дизайнеров и разработчиков. Sandbox, можно легко настроить с помощью одного CSS, так что новичкам будет комфортно работать с ним, к тому же не придется связываться с PHP.

Thematic

01_thematic

Thematic – это бесплатный, open-source, расширяемый, SEO-оптимизированный WordPress-фреймворк, имеющий 13 областей для размещений виджетов, образцы макетов на основе сетки, настройку стилей для популярных плагинов, и целое сообщество, посвященное ему. Он отлично подойдет для начинающих блогеров и профессиональных WordPress-разработчиков.

Hybrid

02_hybrid

Hybrid – это дружественный к пользователю, SEO-оптимизированный фреймворк, имеющий 18 персональных шаблонов страницы и 9 областей для виджетов, позволяющий вам создать любой вид сайта, по вашему желанию.

Carrington

03_carrington

Carrington – это CMS-фреймворк для WordPress, который позволяет легко создать уникальное отображение различных рубрик, записей и комментариев, простым созданием специальных шаблонов.

WPframework

04_wpframework

WP Framework, был создан в качестве начальной точки в разработке WordPress тем.

Он осуществляет это, путем предоставления вам наиболее используемых функций и особенностей, который должна иметь современная тема WordPress. Так что, когда вы начнете новый WordPress-проект, используя WP-фреймворк, у вас в распоряжении будет полный набор базовой функциональности, так что вам не придется заботиться о таких задачах как создание цикла или повторном создании стандартных файлов шаблона.

Parallel

05_parallel

Тема Parallel – это модульная WordPress тема, созданная для «сделай сам» – разработчиков и владельцев веб-сайтов. С помощью выбора модулей, эта тема позволяет обычным пользователям создать уникальный блог или сайт, который удовлетворит как их потребности, так и веб-стандарты.

Введение в дочерние темы, фильтры действия и шаблоны

Дочерние темы

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

Создание дочерней темы

Технически, создание дочерней темы – довольно простая и прямолинейная задача. Первое, что нам понадобится сделать, это загрузить выбранный фреймворк в директорию wp-content/themes. Наша дочерняя тема будет наследовать все функциональность нашего фреймворка (области виджетов, шаблоны, настройки темы и др.).

Далее, мы создадим папку внутри wp-content/themes, например DemoChildTheme. Внутри нее создадим файл style.css, и добавим в него следующий код:

[css]
/*
Theme Name: DemoChildTheme
Theme URI: www.example.com
Description: Use this theme to start your Child Theme development.
Author: Cristian Antohe
Author URI: http://cozmolabs.com/
Template: frameworkname
Version: 1.0
Tags: My Child Theme
.
This work, like WordPress, is released under GNU General Public License, version 2 (GPL).
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
.
*/
[/css]

Вот эта часть, сообщает WordPress, что тема является дочерней:

[css]
Template: frameworkname
[/css]

frameworkname следует заменить на название вашего фреймворка (например Thematic или Hybrid).

Теперь у вас есть новая дочерняя тема, и вы можете активировать ее в панели администрирования WordPress. Она пока не содержит CSS-стилей, потому что мы не добавили их, так что вы можете добавить свой собственный CSS для XHTML-структуры фреймворка.

Хуки, действия и фильтры

WordPress предоставляет механизм хуков, для того чтобы плагины могли «прицепиться» к остальному содержимому WordPress. Разработчики тем взяли эту функциональность плагинов и расширили, для того чтобы использовать в темах. Большинство фреймворков использует хуки и фильтры для вставки своего контента в заранее определенные места HTML-разметки (до заголовка, после основного цикла, после сайдбара и т.д.).

Это достигается, путем добавления вашего кода в файл functions.php, который вам нужно предварительно создать в папке DemoCildTheme.

Существуют два типа хуков:

  • Actions (Действия)
  • Filters (Фильтры)

Между ними есть одно сходство, в том, что add_filter() можно использовать и для действия, и для фильтра. Впрочем, между ними есть несколько различий, и все они перечислены ниже:

Действия и Фильтры имеют различный код.

Фильтры – это функции, через которые WordPress передает данные, в определенный момент исполнения, только до каких-либо действий с данными.

Действия активируются специальными событиями, имеющими место в WordPress, такими как публикация записи, изменение темы или отображения страницы панели администрирования. Во фреймворках они добавляют код к вашей теме, которую вы можете изменять по своему усмотрению, путем назначения определенных хуков действий, разработчиком темы.

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

Все дальнейшие примеры будут работать с фреймворком Thematic, поскольку я лучше всего его знаю, но все должно работать отлично и в других фреймворках, использующих действия и фильтры (при условии использования правильного хука).

Пример Action – изменение дефолтного цикла Thematic

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

Action хук, который мы будем использовать, называется thematic_indexloop(). К хуку уже привязана соответствующая функция (thematic_index_loop), которая выводит дефолтный цикл Thematic. Нам понадобится удалить первоначальный цикл, а затем добавить наш собственный, иначе у нас на странице будет два цикла, а нам это совершенно не к чему.

Любой action хук фреймворка Thematic, может быть удален по желанию. Здесь обязательно следует запомнить, что в отличие от add_action, remove_action не может быть вызвана непосредственно из файла functions.php – вместо этого, заключите функцию remove_action, внутрь другой функции, называемой «init» action, следующим образом:

[php]
function remove_index_loop() {
remove_action(‘thematic_indexloop’, ‘thematic_index_loop’);
}
add_action(‘init’, ‘remove_index_loop’);
[/php]

Теперь, мы можем добавить наш собственный цикл:

[php]
function child_index_loop(){
/* Count the number of posts we have content for the first post only */
$count = 1;
while ( have_posts() ) : the_post() ?>
<div id="post-<?php the_ID() ?>" class="<?php thematic_post_class() ?>">
<?php thematic_postheader(); ?>
<div class="entry-content">
<?php
if ($count == 1){
thematic_content();
} else {
echo ‘<p><a href="’.get_permalink().’" class="more-link">Read More…</a></p>’;
}
?>
</div>
<?php thematic_postfooter(); ?>
</div><!– .post –>
<?php
$count = $count + 1;
endwhile;
}
add_action(‘thematic_indexloop’, ‘child_index_loop’);
[/php]

Пример Filter – добавление ссылки на домашнюю страницу в основное меню

По умолчанию, функция WordPress wp_page_menu() не выводит ссылку на домашнюю страницу.

Следующий фильтр Thematic может это сделать:

[php]
function childtheme_menu_args($args) {
$args = array(
‘show_home’ => ‘Blogue’,
‘sort_column’ => ‘menu_order’,
‘menu_class’ => ‘menu’,
‘echo’ => true
);
return $args;
}
add_filter(‘wp_page_menu_args’,’childtheme_menu_args’);
[/php]

Фильтры внутри action-хуков– удаление описания блога

Действий и фильтров существует огромное количество, больше чем вы можете себе представить. Внутри action-хуков, можно указать фильтры. Каждый фильтр может находиться в собственном месте (порядке).

В этом примере, мы удалим описание нашего блога, из дочерней темы Thematic (часть «Just another wordpress blog»):

[php]
function remove_thematic_blogdescription() {
remove_action(‘thematic_header’,’thematic_blogdescription’,5);
}
add_action(‘init’,’remove_thematic_blogdescription’);
[/php]

Для того чтобы добавить радел «обо мне» с картинкой, вместо описания блога, после удаления описания:

[php]
function about_me(){
echo ‘Hello, I’m Cristian. Here’s an image of me. <img src="www.example.com/my_picture.jpg" alt="my picture" />’;
}
add_action(‘thematic_header’, ‘about_me’, 6);
[/php]

Кроме хуков и фильтров

Хуки и фильтры – забавный (как по мне) и рекомендованный способ создания ваших дочерних тем. Хотя, они не являются единственным средством.

Начиная с версии WordPress 2.7, вы можете переписать любой шаблон оригинальной темы (single.php или archive.php, например) и добавить в него свой собственный код. Благодаря этому, вы имеет абсолютный контроль над своей дочерней темой, не касаясь отдельных файлов внутри вашего фреймворка.

Заключение

Мы должны поблагодарить всех разработчиков фреймворков за долгую и тяжелую работу, особенная благодарность Яну Стюарту, который является основателем фреймворка – идеи дочерних тем.

WordPress-фреймворки не предназначены для всех. Они в основном для разработчиков и людей, не имеющих времени (или не желающих тратить время) на разработку темы с нуля.

Кроме того, люди, с хорошим знанием CSS, но ограниченным знанием WordPress-тем или php, с легкостью смогут создать свою собственную тему, используя только css-стили.

Перевод статьи “WordPress Theme Frameworks explained“, автор Cristian Antohe


Posted

in

,

by

Comments

13 responses to “WordPress. Обзор фреймворков”

  1. ivvi Avatar
    ivvi

    исправьте заголовок поста: Обзор ферймворков

    1. dreamhelg Avatar
      dreamhelg

      спасибо, исправила

  2. goodnews Avatar

    Не совсем понял зачем пользоваться фреймворками типа Thematic. Неужто мало одного функционала вордпресса. С фреймворками придётся учить дополнительные функции, вникать в их механизмы и ради чего? Ради того, чтобы просто не верстать страницу? Вот я понимаю фреймворк сверстаный так, что в разметке можно безболезненно поменять местами сайдбар и контент и т.д., при этом там уже прописан стандартный набор вп_функций, типа the_category the_time и т.д. Т.е. фреймворк, который реально полезен разработчику как отправная точка, а не как нагромождение перекликающихся стандартных функций 🙂

    ПС – я понимаю что перевод, но всё же решил высказаться, может ещё у кого какие мысли или может быть я не совсем прав

    ППС – 2dreamhelg сделай подсказку с разрешенными тегами при написании комментария, над полем ввода текста коммента

    1. dreamhelg Avatar
      dreamhelg

      Мне самой интересно в чем преимущество фреймворков, но наверное оно все-таки есть, раз их существует такое количество. Планирую создать какую-нибудь тему с использованием фреймворка, если получится, потом поделюсь впечатлениями.

  3. goodnews Avatar

    Да, было бы очень интересно посмотреть 🙂

  4. earlcleen Avatar
    earlcleen

    Фреймворки нужен для такого как я. Я не программист и вникать во всякие PHP, jQuery и прочее не имею ни квалификации, ни желания. Мне нужно донести свой контент до людей – при этом максимально удобно и в той форме, в которой я хочу. Я попробовал много фреймворков, в том числе и описанные здесь. Остановился на абсолютно настраиваемой теме Atahualpa. Можно ли назвать ее фреймворком – не знаю, но задачи настраиваемого оформления она решает полностью. Конечно, пришлось почитать и про CSS и про теги HTML, но исключительно в плане изменения свойств элементов.
    Вобщем, всем непрограммистам и невебдизайнерам рекомендую.

  5. Дмитрий Avatar

    Делал свою тему основанной на хуках, а оказывается это называется фрейморк 🙂 На самом деле речь тут идёт об надстройке над статичной темой, расширяющей её функционал с помощью внутренних функций ВордПресс.

  6. Аleksandr Avatar
    Аleksandr

    Полностью согласен с автором earlcleen. Atahualpa это ВЕЩЬ. Я такие вещи на ней делаю!!! Это просто прелесть. Изменить, вставить, переделать – все это за секунды. Кстати может кому интересно, я нашел как удалить в Atahualpa ссылку в Footer (подвале). avm_1967@mail.ru

  7. Виктор Avatar

    Для меня пока еще рано создавать темы, я пока только бессовестно пользуюсь трудами других =)

  8. Александр Avatar

    Как пример, желающие могут убедиться какой сайт можно сделать на теме Atahualpa.
    Я думаю разницу заметно, между оригиналом и переделанной Atahualpa.
    Мой сайт

  9. Garro Avatar

    А это фреймворк gantry-framework.org/ кто-нибудь пробовал? Мне кажется тоже довольно удобный.

  10. max Avatar

    gantry – отличный фреймворк, есть под wp и под joomla
    еще бы хотел выделить PlatformPro от WooThemes – куча настроек, совершенно не нужны знания php, меняй и настраивай все из админки
    Catalyst Theme – тоже весьма настраиваемый фреймворк

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

    а то, что вы называете фреймворком (например SandBox), я бы больше назвал starter theme, эдакая заготовка, на которую натягивается функционал, дизайн и прочее, тут без знания кода никак

  11. Антонина Avatar

    В репозитории WordPress со значением Темы-фреймворки связаны три понятия drop-in, stand-alone и шаблон Parent Theme. Я думаю, объяснить еще проще, чем там, в принципе невозможно.

Leave a Reply to ivvi Cancel reply

Your email address will not be published. Required fields are marked *