Как разрабатывать темы WordPress, совместимые с Elementor

Опубликовано 1 февраля 2024 в 18:05 (Обновлено 30 апреля 2024 в 00:37)
Время чтения: 2 мин

Я работаю программистом WordPress с 2010 года. У меня многолетний опыт в проектировании и разработке тем WordPress. В прошлом я разрабатывал темы с использованием опций темы, кастомайзера и виджетов.

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

1. Начало работы

Мы можем начать со стартовой темы, такой как Underscores. Это лучшая стартовая тема, принятая wordpress.org, ThemeForest и другими торговыми площадками. Underscores генерирует все необходимые нам файлы, такие как index, 404, части шаблона и другие папки/файлы, необходимые для стандартных тем WordPress.

  • Создайте/разработайте свою тему, как обычную тему WordPress, следуя необходимым и рекомендованным правилам официальной команды по рассмотрению тем WordPress.
  • Импортируйте данные Theme Unit Test и проверьте, все ли элементы стилизованы и работают правильно.
  • Инструкции по импорту демо-данных вы найдете на странице Кодекса.
  • Проверьте свою тему с помощью плагина Theme Check.

2. Обеспечение совместимости с Elementor

Чтобы сделать вашу тему совместимой с плагином Elementor для создания страниц, вам нужно позаботиться о нескольких вещах, которые описаны ниже.

Не используйте класс контейнера

Большинство тем используют класс контейнера (.container) в своей теме. Если вы используете контейнер внутри основного содержимого темы, удалите его, если используется шаблон Elementor.

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

<div id="content" class="site-content">
    <div class="container">

Если страница/пост использует шаблон Elementor, вам нужно удалить класс контейнера, как показано ниже.

<?php  
if( !is_page_template('elementor_header_footer')) ){ ?>
    <div class="container">
    <?php 
} ?>

В приведенном выше коде мы загружаем контейнер, если шаблон не является шаблоном Elementor.

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

<?php  
if( !is_page_template('elementor_header_footer')) ){ ?>
    </div>
    <?php 
} ?>

Убираем пробелы

Большинство дизайнеров тем используют отступы (padding) от контента темы. Вы можете удалить отступы от контента, если страница является шаблоном Elementor.

В файле style.css вы можете добавить CSS для шаблона Elementor, как показано ниже:

.elementor-template-full-width #content {
    padding: 0;
}

3. Сделайте стили переопределяемыми

Очень важно сделать так, чтобы стили вашей основной темы легко переопределялись стилями Elementor. Например, не используйте !important в CSS вашей темы.

#content p {
    font-size: 16px !important;
}

#page #content .widget-area .widget .title {
    color: #555555;
}

Избегайте использования !important или длинного селектора стиля. Вы можете стилизовать вышеупомянутые элементы, как показано ниже:

p {
    font-size: 16px ;
}

.widget .title {
    color: #555555;
}

4. Проверяем шаблоны и элементы Elementor

Elementor поставляется с двумя типами шаблонов, Elementor Canvas (канваз) и Elementor Full Width (во всю ширину). Создайте новую страницу и назначьте ей шаблон Elementor Canvas или Elementor Full Width. Нажмите на кнопку "Редактировать с помощью Elementor" в верхней части раздела редактирования страницы.

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

Элементы Elementor
Элементы Elementor

5. Определение локаций

Прежде чем сделать тему совместимой с Elementor, необходимо учесть несколько моментов:

Сначала вам нужно зарегистрировать местоположение в functions.php. Местоположения разбиты на группы: Header, Footer, Single, Archive. Чтобы зарегистрировать все локации:

function theme_prefix_register_elementor_locations( $elementor_theme_manager ) {

     $elementor_theme_manager->register_all_core_location();

}
add_action( 'elementor/theme/register_locations', 'theme_prefix_register_elementor_locations' );

Во-вторых, вывод местоположения в теме. Для этого мы используем elementor_theme_do_location(). Пример, отображение местоположения архива:

<?php
get_header();

// Elementor `archive` location
if ( ! function_exists( 'elementor_theme_do_location' ) || ! elementor_theme_do_location( 'archive' ) ) {
    get_template_part( 'template-parts/archive' );
}

get_footer();

И, как было сказано ниже, убедитесь, что вы удалили контейнер (.container), если используете шаблон Elementor:

<?php  
      if( !is_page_template('elementor_header_footer')) ){ ?>
         <div class="container">
    <?php 
    } ?>

Не забывайте всегда использовать условные теги для проверки в случае, если Elementor не установлен, иначе он будет выбрасывать ошибки. Подробнее: Elementor Theme location API.

Если вы являетесь разработчиком тем WordPress, то разработать темы WordPress, совместимые с Elementor, или заставить существующую тему идеально работать с Elementor не так уж и сложно. Я попытался объяснить метод, который я использую для разработки тем WordPress, совместимых с Elementor.

Однако этот метод может быть применим не ко всем. Если вам нужна помощь в создании темы, совместимой с Elementor, или если вы хотите разработать тему WordPress, совместимую с Elementor, с нуля, обращайтесь ко мне.

Опубликовано 1 февраля 2024 в 18:05

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

ACF Bludit Bootstrap CMS Git Google HTML и CSS Javascript MySQL PHP Python Shopify Tailwind CSS WooCommerce WordPress Видео Маркетинг Фриланс