Как использовать плагин Pods в WordPress?

Про плагин ACF многие уже слышали, а вот про плагин Pods наверное не так много знают, сравним функционал и подумаем в каких случаях они нам пригодятся.

Плагин ACF

С помощью этого плагина мы можем добавить свои поля для поста или страницы и выводить их по какому-либо условию, например только для какой-то категории постов или же для какой-то конкретной страницы, это удобно когда у вас скажем лендинг, вы сверстали шаблон и хотите дать администратору возможность менять только тексты и картинки не влияя на верстку, для этого вы в редакторе страницы вместо Гутенберга выводите только поля ACF для заполнения. Удобно и просто выводить их в самом шаблоне. Делается это примерно так:

$picture = get_field( "picture" );
$testimonial_text = get_field( "text" );
$date = get_the_date('F j, Y');Code language: PHP (php)

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

Плагин Pods

С помощью этого плагина вы можете также, как и в ACF добавлять различные поля к постам, страницам и категориям, но в отличие от ACF в Pods нету возможности задать условия вывода полей, однако не спешите с выводами. Pods имеет немного другую цель – с его помощью можно легко создавать новые типы постов и знатно кастомизировать почти все в WP:

  • Pods имеет целую экосистему расширений и дополнения, больше о возможностях можно узнать на офф. сайте
  • Можно изменить колонки вывода постов в категориях, добавить свои поля для фильтрации.
  • Есть возможность подключать свой контент к чему угодно в WordPress. Вы даже можете ссылаться на любую таблицу базы данных! Ниже покажу на простом примере как это работает.
  • Кроме того в Pods хорошо организовано кеширование данных и имеются собственные инструменты вывода постов, что позволяет делать эффективные запросы и вытаскивать из БД то что нужно.
  • Pods работают с мультиязычными плагинами WPML и Polylang
  • WPgraphQL интеграция что позволяет работать с WP как с headless CMS например используя GatsbyJS

Пример использования из моего сайта

Задача сделать слайдер отзывов для кастомных постов (препараты) и выводить его как шорткод в препаратах, выводить только отзывы соответствующие своим препаратам. Отзывы должны легко вноситься админом.

Сделаем с помощью Pods новый тип поста Отзывы и создадим там поле для изображения и текста, а также поле relations в котором укажем нужный нам тип данных – Препараты.

Поле relations будет отвечать за то какому препарату относится данный отзыв.

Итак создаем шорткод в function.php таким образом:

**
 * Shortcode Slideshow of testimonials
 *
 **/

function testimonials_slider_function() {
    // получаем объект пост чтобы знать ID и заголовок текущего поста 
    global $post;
    // определяем наш тип поста
    $products_type = 'testimonial';
    // аргументы запроса
    $params = array(
        'cache_mode' => 'cache',
        'expires' => 0,
        'where'=>"preparat.id = '$post->ID'",
    );
    // запрос к БД
    $mypod = pods( $products_type, $params );
    // сюда записываем отзывы
    $html = '';
   // проверяем если отзывы есть
   if ( 0 < $mypod->total() ) {
    while ( $mypod->fetch() ) {
        
        $html .= '
			<div class="is-layout-flex wp-container-24 wp-block-columns reviews">
				<div class="is-layout-flow wp-block-column" style="flex-basis:20%">
					<figure class="wp-block-image size-full"><img src="' . $mypod->display('logo') . '" alt="' . $mypod->field('title') . '"></figure>
				</div>

				<div class="is-layout-flow wp-block-column" style="flex-basis:80%">
					<p class="has-text-align-left">“' . $mypod->field('text') . '”</p>
					<p class="has-text-align-right"><strong>' . $mypod->field('title') . '</strong></p>
				</div>
			</div>';
     }
	
	
        	// Если есть отзывы соответствующие препарату
			return '<section class="product_reviews is-layout-flow wp-block-group alignfull section section--hero section--padding_top_medium has-white-background-color has-background">
                        <div class="wp-block-group__inner-container">
			<div class="is-layout-flow wp-block-group container container--hero"><div class="wp-block-group__inner-container">
			<div class="is-layout-flow wp-block-group hero__wrapper--regular"><div class="wp-block-group__inner-container">
			<div class="is-layout-flow wp-block-group hero__content onview left center on"><div class="wp-block-group__inner-container">
			<h2>Отзывы о препарате '.$post->post_title.'®</h2>
			<div class="is-layout-constrained wp-block-group">
			<div class="review_slides wp-block-group__inner-container">
			'.$html.'
			</div></div>
			</div></div>
			</div></div>
			</div></div>
			</div>
			</section>';			
	} else {
        // Если нету отзывов соответствующих препарату
		return;
	}
		
}
add_shortcode('testimonials_slider', 'testimonials_slider_function');

Code language: PHP (php)

Чтобы слайдер работал конечно нужно еще подключить сам скрипт и стили Slick slider и инициализировать его по классу .review_slides

Затем в нужном месте вставляем сам шорткод [testimonials_slider] и радуемся.

Я считаю, что плагин Pods недооценен и у него большой потенциал, лично я им пользуюсь довольно часто в своих проектах, если у вас возникли вопросы или трудности пишите в комментах.

Like this post? Please share to your friends:
Comments: 1
  1. Vadik

    Благодарю за информацию! :idea:

Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: