Можно ли автоматически применять определённый шаблон (разработанный с помощью Elementor) к пользовательскому типу записи?

Вопрос или проблема

Во второй раз в жизни я занимаюсь разработкой веб-сайтов (я графический дизайнер). Я использую WordPress + Elementor Free. Мне нужно два разных типа статей, а именно Новости (я буду использовать базовый шаблон статьи) и “Проповедь” (созданная с помощью ACF -> Custom Post Type). В последнем случае дизайн страницы (которую нужно будет собрать с помощью Elementor) должен быть одинаковым для всех проповедей.

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

Что меня интересует: возможно ли создать специфический шаблон “проповеди”, который автоматически загружается и применяется к статье при ее создании-записи?

Я знаю, что если бы у меня был Elementor Pro, я мог бы использовать условия отображения.

Что я сделал

Я провел несколько онлайн-поисков, включая обращение за помощью к ChatGpt, однако, на мой взгляд, помощь человека незаменима.

  1. Я создал шаблон и через WordPress, и через Royal Element Addons (позже я понял, что установка условия для CPT платная).

  2. ChatGpt направил меня следующим образом:

  • Поскольку я использую дочернюю тему, он заставил меня создать PHP-файл в папке дочерней темы, названный “single-predica.php”, содержащий следующие строки кода:

      <?php     /* Шаблон для Custom Post Type "Predica" */   get_header(); // ID шаблона Elementor (замените своим ID) $template_id = 1672 // Если Elementor активен, загрузите пользовательский шаблон if ( function_exists('elementor_theme_do_location') && elementor_theme_do_location('single') ) {
      // Elementor управляет шаблоном  } elseif ( function_exists('elementor') ) { echo do_shortcode('[elementor-template id="' . $template_id . '"]'); } else { // Если Elementor не активен, покажите классический контент if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>   <article>   <h1><?php the_title(); ?></h1>   <div class="content">
                      <?php the_content(); ?>     </div>    </article>  <?php  endwhile; endif; }  get_footer(); ?>
    
  • В файл “functions.php” он заставил меня добавить этот код:

    function override_predica_template($template) { if ( is_singular(‘predica’) ) { return get_stylesheet_directory() . ‘/single-predica.php’; } return $template; } add_filter(‘single_template’, ‘override_predica_template’);

Моя альтернатива, громоздкая и не автоматическая, заключается в импорте для каждой проповеди шаблона через Elementor. Однако с этим методом я заметил, что в разделе контента (“post content”) он загружает всю страницу. В результате я подумал о использовании 2 пользовательских полей, созданных с помощью ACF, и размещении их с кодом в двух текстовых редакторах, не прибегая к виджету “post content”.

Я запутался. Пожалуйста, будьте терпеливы со мной. Поэтому я обращаюсь к вашему опыту. Есть ли способ сделать это?

Я надеюсь, что был ясен для всех. Если я говорил глупости, не вините меня.

Ответ или решение

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

Теория

WordPress по своей природе предоставляет гибкость в управлении различными типами контента через пользовательские типы записей (Custom Post Types, CPT). Это позволяет создавать специализированные формы содержания, такие как «Новости» и «Проповеди», упомянутые в вашем вопросе. Используя Elementor, даже в бесплатной версии, вы можете создавать привлекательные и функциональные страничные дизайны. Однако, автоматическое применение шаблонов требует некоторых настроек.

Без Elementor Pro, который предоставляет встроенную функцию условий отображения (Display Conditions), задача становится более сложной. Вы хотите, чтобы все посты типа «Проповедь» автоматически использовали заданный шаблон, сохраняя при этом простоту ввода контента для пользователей, не знакомых с техническими аспектами WordPress.

Пример

Ваш текущий подход включает создание нового PHP файла в теме и использование функции do_shortcode() для вывода шаблона Elementor. Также вы задействовали фильтр single_template для указания кастомного файла шаблона.

Этот подход является одним из возможных решений, но он требует правильной конфигурации и отладки. Ваш код в файле single-predica.php использует функцию do_shortcode() для отображения Elementor-шаблона, что устраняет часть работы вручную. Однако необходимо убедиться, что идентификатор шаблона ($template_id) соответствует реальному идентификатору созданного вами шаблона в Elementor.

Применение

Для более стабильного и профессионального решения этой задачи, рассмотрите следующие шаги:

  1. Убедитесь в правильности идентификатора шаблона. Как уже упоминалось, $template_id должен быть реальным идентификатором вашего готового шаблона в Elementor. Вы можете найти этот идентификатор в Elementor > Шаблоны, отредактировав нужный вам шаблон.

  2. Подтверждение условий использования. Проверьте ваш PHP-код, чтобы убедиться, что все условия, заданные в single-predica.php, корректно выполняются. Убедитесь, что функция elementor_theme_do_location('single') работает так, как ожидается.

  3. Консультация с документацией. Посмотрите документацию как ACF, так и Elementor, для более глубокой интеграции. Использование функций ACF для вывода мета-полей может значительно улучшить опыт работы с контентом.

  4. Упрощение интерфейса ввода данных. Так как вы хотите сделать процесс ввода контента простым и интуитивным для пользователей, рассмотрите возможность использования ACF для создания пользовательских полей и групп полей, которые будут видны на экране редактирования. Это поможет легко заполнять поля без необходимости работы с HTML или сложными инструментами редактирования.

  5. Тестирование и отладка. После внедрения всех изменений, протестируйте функциональность на тестовом сервере. Убедитесь, что все элементы отображаются, и что пользователи могут без труда создавать и редактировать записи типа «Проповедь».

Наконец, если вас всё ещё смущает PHP-код или вы хотите быть уверены в максимально возможной автоматизации, вы можете рассмотреть обновление до Elementor Pro, так как это может упростить решение за счёт внутренних инструментов для управления шаблонами и условиями отображения.

Таким образом, следование этому плану позволит вам создать удобную и эффективную систему для управления вашим контентом в WordPress без лишней нагрузки на пользователей и минимизировать риск ошибок или недопонимания.

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

Капча загружается...