Разработка

Концепции WordPress для разработчиков Joomla: Темы

WordPress
Концепции WordPress для разработчиков Joomla

Этот материал является переводом первой части серии материалов о концепциях WordPress для разработчиков Joomla автора Cory Webb - WordPress concepts for Joomla developers: Themes.

Идея серии в том, чтобы пояснить концепции WordPress с точки зрения разработчика Joomla, и помочь вам лучше понять, в чём WordPress и Joomla схожи, и в чём они различаются.

Первый материал охватывает темы WordPress. Цель этого материала в том, чтобы сравнить и сопоставить темы WordPress с шаблонами Joomla. Мы не будем сильно углубляться в создание тем WordPress. В сети достаточно материалов на эту тему.

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

Структура файлов

Шаблоны Joomla распаложены в папке /templates установки Joomla, каждый в папке с одноименным названием шаблона. Каждому шаблону Joomla для работы необходимо 2 файла: index.php and templateDetails.xml. Файл index.php содержит код, необходимый для рендеринга шаблона. Файл templateDetails.xml является файлом манифеста шаблона и содержит информацию о шаблоне Joomla.

Темы WordPress расположены в папке /wp-content/themes установки WordPress с одноименным названием темы. Также как и шаблонам Joomla, шаблону WordPress для работы необходимо 2 файла: index.php и style.css. Файл index.php содержит код, необходимый для рендеринга шаблона. Файл style.css используется для двух целей. Это первичная таблица стилей темы, а также информация о теме в специальном блоке заголовка файла. Вот так выглядит пример такого блока:

/*
Theme Name: Twenty Seventeen
Theme URI: <a href="https://wordpress.org/themes/twentyseventeen/" rel="nofollow" target="_blank" >https://wordpress.org/themes/twentyseventeen/</a>
Author: the WordPress team
Author URI: <a href="https://wordpress.org/" rel="nofollow" target="_blank" >https://wordpress.org/</a>
Description: Twenty Seventeen brings your site to life with immersive featured images and subtle animations. With a focus on business sites, it features multiple sections on the front page as well as widgets, navigation and social menus, a logo, and more. Personalize its asymmetrical grid with a custom color scheme and showcase your multimedia content with post formats. Our default theme for 2017 works great in many languages, for any abilities, and on any device.
Version: 1.0
License: GNU General Public License v2 or later
License URI: <a href="http://www.gnu.org/licenses/gpl-2.0.html" rel="nofollow" target="_blank" >http://www.gnu.org/licenses/gpl-2.0.html</a>
Text Domain: twentyseventeen
Tags: one-column, two-columns, right-sidebar, flexible-header, accessibility-ready, custom-colors, custom-header, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready
This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/

Больше информации о файле style.css вы можете найти здесь.

Миниатюра/Скриншот

Ещё одним сходством между шаблонами Joomla и темами WordPress в том, что у них есть миниатюра или скриншот того, как выглядит тема. В Joomla это PNG файла с названием template_thumbnail.png, а в WordPress это PNG файла с названием screenshot.png. Если они есть, то Joomla и WordPress отобразят их в панели управления шаблонами или темами.

Функции

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

Этот же файл выполняется ещё две функции – регистрирует сайдбары и позиции меню темы. Сайдбары – это области внутри темы, в которых происходит рендеринг виджетов. Сайдбары похожи на позиции модулей в Joomla, а виджеты на модули, хотя есть и некоторые различия, которые я рассмотрю в следующем материале. Позиции меню – это области в теме, в которых рендерятся меню. Они также похоже на позиции модуля, но основное отличие в том, что зарегистрированные позиции меню напрямую привязаны к менеджеру меню WordPress.

Код

Одним из самых больших различий между шаблонами Joomla и темами WordPress является их код. Темы WordPress используют PHP тэги и функции для загрузки хидера (header), рендеринга сайдбаров (sidebar), рендеринга основной области контента (или "The Loop", будет рассмотрен в следующем материале), а также для рендеринга футера (footer).

В Joomla шаблоны также используют PHP, но у Joomla свой язык разметки, в котором она рендерит такие вещи как header, component (компонент) и позиции модулей через тэги <jdoc:include... />. WordPress так не работает, поэтому вам придётся ознакомиться с тэгами шаблона или PHP сниппетами для рендеринга частей темы.

Дочерние тем

Есть в WordPress такая вещь, которой нет в Joomla – это дочерние темы (child themes). Дочерняя тема в WordPress использует существующую родительскую тему, не внося в неё изменений. Вам нужно устанавливать обе темы сразу, но активировать только дочернюю тему.

WordPress знает, что дочерняя тема предназначена для использования вместе с родительской темой, потому что вы указываете родительскую тему в заголовке style.css. Вы просто добавляете следующую строку: Template: parent_theme_name. Вы можете использовать дочернюю тему для загрузки кастомного CSS в родительскую тему. Для этого используется специальная функция в файле functions.php дочерней темы. Вы также можете использовать дочернюю тему для переопределения PHP шаблонов родительской темы, что даёт вам полный контроль над выходными данными и при этому сохраняется код и стили родительской темы.

Установка

В Joomla вы должны явно установить шаблон, чтобы Joomla смогла его использовать. В WordPress вы можете просто перекинуть тему в папку /wp-content/themes и WordPress сразу же узнает о ней. Вам останется просто активировать её для использования.

Одновременно только одна тема

Joomla позволяет вам установить и использовать столько шаблонов, сколько вы захотите, путём назначения разных шаблонов к разным страницам (пунктам меню) вашего сайта. Это отличная возможность, которая значительно отличает Joomla от WordPress, так как позволяет вам иметь совершенно различный дизайн для разных частей вашего сайта. WordPress, с другой стороны, позволяет одновременно использовать только одну тему. Есть плюсы и минусы в обоих подходах, просто имейте в виду, что есть такое ограничение у WordPress.

Итоги и что дальше?

В этом материале я поверхностно прошёлся по темам WordPress. Тем, кто уже научился создавать шаблоны Joomla перед тем, как создавать темы WordPress, эта статья поможет пролить свет на вопросы, которые были непонятны мне, когда я впервые начал создавать темы для WordPress Подробную информацию о темах WordPress вы можете получить здесь.

В следующем материале я разберу сайдбары и виджеты, и проведу сравнение с позициями модулей и модулями Joomla.

Оригинальная статья:
Dmitry Rekun
Работаю в банковской сфере, а с веб-разработкой (непосредственно с Joomla) столкнулся в 2007 году. Теперь это моё хобби и время от времени вторая работа. Какое-то время вёл свой блог, но решил попробовать работать в команде. И вот c 2012 года я здесь :)

Последние комментарии