Как использовать плагин 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:
Leave a Reply

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