18
Фев

Как сделать файл single.php для Visual Composer

Все, кто сталкивался с плагином Visual Composer знают, что этот плагин работает на основе стандартного функционала WordPress – шорткодов. Поэтому, для использования данного плагина на страницах записей, достаточно любого стандартного шаблона single.php с выполнением шорткодов.

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

Поэтому давайте рассмотрим вопрос работы с Visual Composer на страницах “записей”. Первым делом, вам нужно будет включить Visual Composer для типа записей “post”(по умолчанию отключена графическая оболчка редактора, но, при этом шорткоды плагина использовать можно), делается это только для нашего удобства и на внешний вид страницы записи никак не повлияет. Включить Visual Composer для записей можно на странице настроек плагина, обычно находящаяся по адресу /wp-admin/admin.php?page=vc-general

Перейдя по этому адресу, вы окажетесь на странице настроек плагина, далее вам нужно перейти на страницу “Управление ролями”(второй таб), и отметить для каждой пользовательской роли типы записей, которые данный тип пользователя сможет редактировать с помощью визуального редактора Visual Composer. В данном случае, нам нужно отметить тип “post” для роли “Администратор”:

И нажать кнопку “Сохранить изменения”.

Далее, если вас не устраивает ваш шаблон “единичной записи”(single post page), создайте новый, кастомный шаблон под свои цели. Чаще всего, нужно просто отредактировать файл по адресу(относительно корня вашего сайта):

/wp-content/themes/НАЗВАНИЕ_ТЕМЫ/single.php

В простейшем случае, будет достаточно всего 3-х строк:

// PHP CODE

<?php get_header();
the_content();
get_footer();

Код данной страницы, думаю, понятен всем: первая строка выводит шапку, вторая - контент, третья - подвал сайта.
Как я уже говорил ранее - это простейший пример, и не факт, что он полностью вам подойдет.
В большинстве случае, для достижения желаемого результата, приходится оборачивать выводимый контент страницы определенными тегами, например тегом article:

// PHP CODE

<?php get_header(); ?>
<article id='post-<?php the_ID(); ?>' <?php post_class(); ?>>
<?php the_content(); ?>
</article>
<?php
get_footer();

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

// PHP CODE

<?php if (comments_open() || get_comments_number()) comments_template(null, true); ?>

А в идеале, делать согласно общепринятым нормам для подобных файлов в WordPress: вывод производится в цикле, проверяется наличие постов для вывода и вывод сообщения о том, что записи для вывода не найдены.

// PHP CODE

<?php get_header();
if ( have_posts() ): while ( have_posts() ) : the_post();
echo '<article id="post-'. get_the_ID() .'" class="post">';
the_content();
if (comments_open() || get_comments_number())
comments_template(null, true);
echo '</article>';
while;
else:
_e('Error. Page not found!', 'your-plugin-theme-name');
endif;
get_footer();

Также, если нужно убрать футер и/или хедер со страницы, нужно просто убрать функцию “get_header” и/или “get_footer” и поставить на их место “wp_head” и “wp_footer”, соответственно.
Учтите только, что wp_head выводит только подключенные скрипты и стили, поэтому она должна располагаться в районе блока “head” страницы. Который при необходимости можно добавить в файл single.php. Также страница не должна заканчиваться выполнением функции wp_footer, после нее идет еще, как минимум закрывающий тег «</html>»