Очередной блог фрилансера

коротко и полезно о веб-разработке

Menu Close

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, и добавим в него следующий код:

/*
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
.
*/

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

Template: frameworkname

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, следующим образом:

function remove_index_loop() {
remove_action('thematic_indexloop', 'thematic_index_loop');
}
add_action('init', 'remove_index_loop');

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

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');

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

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

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

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');

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

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

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

function remove_thematic_blogdescription() {
    remove_action('thematic_header','thematic_blogdescription',5);
}
add_action('init','remove_thematic_blogdescription');

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

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);

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

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

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

Заключение

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

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

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

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

Рассказать друзьям

Понравилась статья? Лучший способ сказать спасибо - поделиться ссылкой в социальных сетях: