WordPress + Owl Carousel

Подключение файлов Owl Carousel в WordPress тему производится в файле functions.php

Предполагается, что в корне темы созданы папки /css и /js и записаны соответствующие файлы плагина.

название-темы/css
owl.carousel.min.css
owl.theme.default.min.css

название-темы/js
owl.carousel.min.js

Подключаем стили.
Файл owl.carousel.min.css подключается всегда. Файл owl.theme.default.min.css подключается если будет использоваться навигация.

// owl.carousel
wp_enqueue_style( 'owl-css', get_template_directory_uri().'/css/owl.carousel.min.css' );
wp_enqueue_style( 'owl-theme', get_template_directory_uri().'/css/owl.theme.default.min.css' );

Подключаем js файл.
Важный момент – указать последний параметр array( ‘jquery’ ). Это указание WordPress загрузить owl.carousel после загрузки jQuery. Порядок загрузки важен.

wp_enqueue_script( 'owl-js', get_template_directory_uri() . '/js/owl.carousel.min.js', array( 'jquery' ) ); 

Слайдеры карусели могут состоять не только из фотографий или рисунков. Слайдеры могут представлять собой обычные html блоки.

Приводим кусок нашего front-page.php
Сама карусель помещается в <section class=”portfolio-slider owl-carousel owl-theme”>
Классы owl-carousel owl-theme нужны для работы скрипта. Класс owl-carousel обязательный. Класс owl-theme для включения навигации.
К классу portfolio-slider будем обращаться из скрипта. Если бы на одной страницы были бы несколько разных каруселей, нужно было бы объявить для каждой карусели свой уникальный класс.

Здесь мы собираем слайдеры карусели для портфолио так:
заведена рубрика portfolio
запись в ней состоит из заголовка и описания, к записи прикрепляется миниатюра
в цикле выбираем последние 6 записей и формируем html блок в отдельном <div class=”box-portfolio”>

Так будет выглядеть часть файла php в которой собираются слайдеры (пример портфолио этого сайта)

<h2>Наше портфолио</h2> 
<section class="portfolio-slider owl-carousel owl-theme">

  <?php
  $posts = get_posts( array(
        'category_name' => 'portfolio',
        'posts_per_page'	=> 6
        ) );
  if( $posts ): 
    // если есть записи

    foreach( $posts as $post ): 
      setup_postdata( $post );

      echo '<div class="box-portfolio">';

        echo '<a href="'.get_permalink().'">';
          $thumbnail = get_the_post_thumbnail_url( get_the_ID() ); // post-thumbnail, small, medium , large, full
          echo '<img src="'.$thumbnail.'">';
          echo '<hr>';
          the_title( '<h6>', '</h6>' ); // выводим заголовок
        echo '</a>';

      echo '</div>'; // class="box-portfolio"
    endforeach; 
    wp_reset_postdata();


  endif;
  ?> 

</section>

Такой html этого блока получит браузер
на самом деле блоков будет 6, оставили 3 – экономим место

<h2>Наше портфолио</h2> 
<section class="portfolio-slider owl-carousel owl-theme">

  <div class="box-portfolio">
    <a href="https://orata.ru/portfolio/orata-this-site/">
      <img src="https://orata.ru/wp-content/uploads/orata.ru_.jpg">
      <hr>
      <h6>Orata &#8212; этот сайт</h6>
    </a>
  </div>

  <div class="box-portfolio">
    <a href="https://orata.ru/portfolio/nextbed/">
      <img src="https://orata.ru/wp-content/uploads/nextbed.ru_.jpg">
      <hr>
      <h6>NextBed &#8212; промо сайт</h6>
    </a>
  </div>

  <div class="box-portfolio">
    <a href="https://orata.ru/portfolio/crovatti/">
      <img src="https://orata.ru/wp-content/uploads/crovatti.ru_.jpg">
      <hr>
      <h6>Crovatti &#8212; интернет магазин</h6>
    </a>
  </div>
  ........
</section>

Для того чтобы заработало, надо добавить js обработчик.
Добавляем его в общий js файл темы.
Можно добавить и отдельным файлом, только не забыть его загрузить в тему и не забыть сам jQuery


jQuery( function($) {

	........

});
$(document).ready(function(){
  $('.portfolio-slider').owlCarousel( {
    center: true, // центральный item получит дополнительный класс center, будет class="owl-item active center"
    loop: true, // Зацикливаем слайдер
    autoWidth:true, // обрезаются левая и правая часть, полная ширина только по центру
    dots: false, // не показываем точки
    nav: true, // 
    items: 3 // The number of items you want to see on the screen
    // navText: ['налево', 'направо'],
  } );
});

Краткое описание схемы работы Owl Carousel – https://orata.ru/blog/owl-carousel-2/

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх