Как добавлять шаблоны html с измененным текстом через админ-панель в WordPress?
Есть верстка одной страницы, в этой верстке есть слайдер с отзывами от пользователей и пользователи соответственно могут оставлять новые отзывы. Это происходит таким образом, пользователь пишет отзыв в форме где заполняет два поля: ФИО, Отзыв. После отправки формы данные с полей отправляются на почту, этот отзыв смотрят и решают добавить его в этот слайдер или нет. И вот с добавлением его в слайдер и возникают "непонятки". Можно конечно копировать текст отзыва с письма и прямо в файле .php написать еще один блок слайдера, но уже с соответствующим текстом, но думаю есть и другой выход. В самом WordPress я не силен, но почти уверен, что есть такой метод чтобы написать текст отзыва в админ-панели и он сам вставит этот текст в соответствующий html шаблон и добавить в нужное место на странице.
Т.е. в моем скудном представлении это выглядит следующим образом:
Я пишу html шаблон, в моем представлении выглядит примерно так:
<div class="review">
<div class="reivew-title>
<div class="review-title-photo"></div>
<div class="review-title-name"><?php esc_html($review_name); ?></div>
</div>
<div class="review-content">
<div class="review-content-text">
<?php esc_html($review_content_text); ?>
</div>
</div>
</div>
Потом в админ-панели пишу значения переменных $review_name и $review_content_text и они подставляются на нужное в написанном шаблоне и этот шаблон вставляется в нужное место на странице.
И вот, как можно сделать вышеописанное и есть ли такое вообще? Или для этого другой выход, если да, то какой?
P.S. Я много гуглил и лишь примерно понимаю, что можно использовать шорткоды, но как использовать тоже не очень понятно
P.S. Использование плагинов привествуется
Ответы (1 шт):
Добавляем шорткод через ф-цию add_shortcode, вторым параметром указываем callback ф-цию my_review_function:
add_shortcode( 'review', 'my_review_function', );
function my_review_function( $atts ) {
if ( empty( $atts['name'] || empty( $atts['content'] ) ) {
return;
}
?>
<div class="review">
<div class="reivew-title>
<div class="review-title-photo"></div>
<div class="review-title-name"><?php echo esc_html($atts['name'] ); ?>
</div>
</div>
<div class="review-content">
<div class="review-content-text">
<?php echo esc_html($atts['content'] ); ?>
</div>
</div>
</div>
}
Аттрибуты $atts - это массив аттрибуттов шорткода в виде key=value.
Пример использования: [review name='Some name' content='Content']