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
, и добавим в него следующий код:
/* 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
исправьте заголовок поста: Обзор ферймворков
спасибо, исправила
Не совсем понял зачем пользоваться фреймворками типа Thematic. Неужто мало одного функционала вордпресса. С фреймворками придётся учить дополнительные функции, вникать в их механизмы и ради чего? Ради того, чтобы просто не верстать страницу? Вот я понимаю фреймворк сверстаный так, что в разметке можно безболезненно поменять местами сайдбар и контент и т.д., при этом там уже прописан стандартный набор вп_функций, типа the_category the_time и т.д. Т.е. фреймворк, который реально полезен разработчику как отправная точка, а не как нагромождение перекликающихся стандартных функций :)
ПС — я понимаю что перевод, но всё же решил высказаться, может ещё у кого какие мысли или может быть я не совсем прав
ППС — 2dreamhelg сделай подсказку с разрешенными тегами при написании комментария, над полем ввода текста коммента
Мне самой интересно в чем преимущество фреймворков, но наверное оно все-таки есть, раз их существует такое количество. Планирую создать какую-нибудь тему с использованием фреймворка, если получится, потом поделюсь впечатлениями.
Да, было бы очень интересно посмотреть :)
Фреймворки нужен для такого как я. Я не программист и вникать во всякие PHP, jQuery и прочее не имею ни квалификации, ни желания. Мне нужно донести свой контент до людей — при этом максимально удобно и в той форме, в которой я хочу. Я попробовал много фреймворков, в том числе и описанные здесь. Остановился на абсолютно настраиваемой теме Atahualpa. Можно ли назвать ее фреймворком — не знаю, но задачи настраиваемого оформления она решает полностью. Конечно, пришлось почитать и про CSS и про теги HTML, но исключительно в плане изменения свойств элементов.
Вобщем, всем непрограммистам и невебдизайнерам рекомендую.
Делал свою тему основанной на хуках, а оказывается это называется фрейморк :) На самом деле речь тут идёт об надстройке над статичной темой, расширяющей её функционал с помощью внутренних функций ВордПресс.
Полностью согласен с автором earlcleen. Atahualpa это ВЕЩЬ. Я такие вещи на ней делаю!!! Это просто прелесть. Изменить, вставить, переделать — все это за секунды. Кстати может кому интересно, я нашел как удалить в Atahualpa ссылку в Footer (подвале). avm_1967@mail.ru
Для меня пока еще рано создавать темы, я пока только бессовестно пользуюсь трудами других =)
Как пример, желающие могут убедиться какой сайт можно сделать на теме Atahualpa.
Я думаю разницу заметно, между оригиналом и переделанной Atahualpa.
Мой сайт
А это фреймворк gantry-framework.org/ кто-нибудь пробовал? Мне кажется тоже довольно удобный.
gantry — отличный фреймворк, есть под wp и под joomla
еще бы хотел выделить PlatformPro от WooThemes — куча настроек, совершенно не нужны знания php, меняй и настраивай все из админки
Catalyst Theme — тоже весьма настраиваемый фреймворк
мне нравятся такие темы, где не нужно лезть в код, и многим начинающим блоггерам они тоже понравятся, это удобно, и уникализировать дизайн под себя можно очень легко
а то, что вы называете фреймворком (например SandBox), я бы больше назвал starter theme, эдакая заготовка, на которую натягивается функционал, дизайн и прочее, тут без знания кода никак
В репозитории WordPress со значением Темы-фреймворки связаны три понятия drop-in, stand-alone и шаблон Parent Theme. Я думаю, объяснить еще проще, чем там, в принципе невозможно.