WordPress-фреймворк это обычная WordPress-тема, разработанная в качестве гибкой основы, служащая родительской темой, для создания дочерней темы. Хотя еще не все оценили фреймворки по достоинству, они все равно приносят большую пользу WordPress-сообществу, посредством качественного кода и большим количеством дочерних тем.
Существует ряд причин, по которым вам стоит использовать WordPress-фреймворк
- Возможность построить практически любой тип сайта.
- Если вы не знаете, как создать собственную WordPress-тему с нуля.
- Валидный и семантический XHTML.
- Если вы планируете научиться создавать тему WordPress.
- Если вы веб-разработчик и нуждаетесь в быстром создании сайтов для клиентов.
- SEO-оптимизированная тема.
- Поддержка множества популярных плагинов.
- Динамические стили body и возможность быстрого изменения любой страницы с помощью css.
- Возможность использования микроформатов.
6 Фреймворков, которые помогут вам создать следующую убойную тему для WordPress
SandBox
Наверное, первый настоящий WordPress-фреймворк. Sandbox – это полезный и впечатляющий инструмент, доступный для дизайнеров и разработчиков. Sandbox, можно легко настроить с помощью одного CSS, так что новичкам будет комфортно работать с ним, к тому же не придется связываться с PHP.
Thematic
Thematic – это бесплатный, open-source, расширяемый, SEO-оптимизированный WordPress-фреймворк, имеющий 13 областей для размещений виджетов, образцы макетов на основе сетки, настройку стилей для популярных плагинов, и целое сообщество, посвященное ему. Он отлично подойдет для начинающих блогеров и профессиональных WordPress-разработчиков.
Hybrid
Hybrid – это дружественный к пользователю, SEO-оптимизированный фреймворк, имеющий 18 персональных шаблонов страницы и 9 областей для виджетов, позволяющий вам создать любой вид сайта, по вашему желанию.
Carrington
Carrington – это CMS-фреймворк для WordPress, который позволяет легко создать уникальное отображение различных рубрик, записей и комментариев, простым созданием специальных шаблонов.
WPframework
WP Framework, был создан в качестве начальной точки в разработке WordPress тем.
Он осуществляет это, путем предоставления вам наиболее используемых функций и особенностей, который должна иметь современная тема WordPress. Так что, когда вы начнете новый WordPress-проект, используя WP-фреймворк, у вас в распоряжении будет полный набор базовой функциональности, так что вам не придется заботиться о таких задачах как создание цикла или повторном создании стандартных файлов шаблона.
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
Leave a Reply