var activeSlideIndex;
var mySwiper;
$(document).ready(function () {
if ($(window).width() >= 1000) {
$('.first__wrapper').show(1500);
if (!/MSIE \d|Trident.*rv:/.test(navigator.userAgent)) {
$('.second__desc').addClass('is-hide');
$('.slider-main__desc').addClass('is-hide');
$('.third__title ').addClass('is-hide');
$('.five__wrapper').addClass('is-hide');
if ($('.main-scroll').hasClass('main--index')) {
$('.main-scroll').addClass('swiper-container');
$('#pagescroll').addClass('swiper-wrapper');
new Swiper('.main-scroll', {
slidesPerView: 1,
mousewheel: {
eventsTarged: '.main',
releaseOnEdges: true,
},
speed: 1000,
navigation: {
nextEl: '.scroll__btn--next',
prevEl: '.scroll__btn--prev',
},
scrollbar: {
el: '.scroll__body',
draggable: true,
dragSize: 50,
},
});
}
}
}
});
// Свайпер спецпредложений
$(document).ready(function () {
function main_swiper() {
new Swiper('.slider-main', {
fadeEffect: {
crossFade: true
},
autoplay: {
delay: 3000,
},
// autoplayStopOnLast: true,
speed: 2000,
loop: true,
preloadImages: false,
lazy: true,
pagination: {
el: '.slider-main__pagination',
clickable: true,
renderBullet: function (index, className) {
return '<span class="' + className + '">' + (index + 1) + '</span>';
},
},
navigation: {
nextEl: '.slider-main__nav--next',
prevEl: '.slider-main__nav--prev',
},
});
var mySwiper = document.querySelector('.main-scroll').swiper;
mySwiper.on('slideChange', function () {
var activeSlideIndex = mySwiper.activeIndex;
console.log(activeSlideIndex);
var mainSwiper = document.querySelector('.slider-main').swiper;
if (activeSlideIndex == 2) {
console.log('this is third slide');
mainSwiper.autoplay.start();
} else {
mainSwiper.autoplay.stop();
}
});
}
setTimeout(main_swiper, 4000);
});
<!-- Вывод случайных блюд из админки -->
<?php
$term_item = get_the_terms( get_the_ID(), 'food_categories' )[0]->slug; //Определяем текущую категорию
$args = array(
'post_type' => 'blyuda',
'posts_per_page' => 4,
'orderby' => 'rand',
// 'order' => 'ASC',
'tax_query' => array(
array(
'taxonomy' => 'food_categories',
'field' => 'slug',
'terms' => array( $term_item), // Объявляем посты из текущей категории
'operator' => 'NOT IN', // Исключаем посты из текущей категории
)
)
);
$item_query = new WP_Query($args);
if($item_query->have_posts()):
while($item_query->have_posts()):
$item_query->the_post();
get_template_part( 'template-parts/menu-posts', get_post_format() ); ?>
<?php endwhile;
endif;
wp_reset_postdata();
?>
add_action('wp_footer', 'ya_map_scripts'); // Подключаем скрипт с API карт
add_action('wp_footer', 'js_scripts'); // Подключаем скрипт js
function ya_map_scripts() {
wp_enqueue_script('ymaps', 'https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=ВашКлючAPI"', [], null, true);
} // Скрипт яндекс.карт
function js_scripts()
{
wp_enqueue_script('main', get_template_directory_uri() . '/assets/js/main.min.js');
} // Скрипт js, адрес, естественно, указываете свой
<script>
//Определяется переменная, которая содержит адрес вашего объекта
var js_ad = '<?php echo the_field('adres_na_ostalnyh_straniczah', 'option'); ?>';
//В моем случая я подключила поле из страницы опций.
// Можно подключить, например, кастомное поле через плагин ACF
//Тогда это будет выглядеть как var js_ad = '<?php echo the_field('название_поля'); ?>';
</script>
<div id="map" class="map-yandex">
// это контейнер, в котором будет отображена карта
.map-yandex {
overflow: hidden;
width: 100%;
height: 502px;
position: relative;
@media (max-width: map-get($tablet, lg)) {
pointer-events: none;
}
}
ymaps.ready(init);
function init() {
var myMap = new ymaps.Map('map', {
center: [55.753994, 37.622093], // поменяйте местоположение центрирования карты, можно воспользоваться сервисом https://constructor.maps.yandex.ru/location-tool/
zoom: 9
});
// Поиск координат центра значения нашей переменной js_ad.
// Строку Россия я сделала на всякий случай, если карты вдруг захотят убежать в другую страну
ymaps.geocode('Россия,' + js_ad, {
/**
* Опции запроса
* @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/geocode.xml
*/
// Сортировка результатов от центра окна карты.
// boundedBy: myMap.getBounds(),
// strictBounds: true,
// Вместе с опцией boundedBy будет искать строго внутри области, указанной в boundedBy.
// Если нужен только один результат, экономим трафик пользователей.
results: 1
}).then(function (res) {
// Выбираем первый результат геокодирования.
var firstGeoObject = res.geoObjects.get(0),
// Координаты геообъекта.
coords = firstGeoObject.geometry.getCoordinates(),
// Область видимости геообъекта.
bounds = firstGeoObject.properties.get('boundedBy');
// Добавляем первый найденный геообъект на карту.
myMap.geoObjects.add(firstGeoObject);
// Масштабируем карту на область видимости геообъекта.
myMap.setBounds(bounds, {
// Проверяем наличие тайлов на данном масштабе.
checkZoomRange: true
});
/**
* Все данные в виде javascript-объекта.
*/
console.log('Все данные геообъекта: ', firstGeoObject.properties.getAll());
/**
* Метаданные запроса и ответа геокодера.
* @see https://api.yandex.ru/maps/doc/geocoder/desc/reference/GeocoderResponseMetaData.xml
*/
console.log('Метаданные ответа геокодера: ', res.metaData);
/**
* Метаданные геокодера, возвращаемые для найденного объекта.
* @see https://api.yandex.ru/maps/doc/geocoder/desc/reference/GeocoderMetaData.xml
*/
console.log('Метаданные геокодера: ', firstGeoObject.properties.get('metaDataProperty.GeocoderMetaData'));
/**
* Точность ответа (precision) возвращается только для домов.
* @see https://api.yandex.ru/maps/doc/geocoder/desc/reference/precision.xml
*/
console.log('precision', firstGeoObject.properties.get('metaDataProperty.GeocoderMetaData.precision'));
/**
* Тип найденного объекта (kind).
* @see https://api.yandex.ru/maps/doc/geocoder/desc/reference/kind.xml
*/
console.log('Тип геообъекта: %s', firstGeoObject.properties.get('metaDataProperty.GeocoderMetaData.kind'));
console.log('Название объекта: %s', firstGeoObject.properties.get('name'));
console.log('Описание объекта: %s', firstGeoObject.properties.get('description'));
console.log('Полное описание объекта: %s', firstGeoObject.properties.get('text'));
/**
* Если нужно добавить по найденным геокодером координатам метку со своими стилями и контентом балуна, создаем новую метку по координатам найденной и добавляем ее на карту вместо найденной.
*/
/**
var myPlacemark = new ymaps.Placemark(coords, {
iconContent: 'моя метка',
balloonContent: 'Содержимое балуна <strong>моей метки</strong>'
}, {
preset: 'islands#violetStretchyIcon'
});
myMap.geoObjects.add(myPlacemark);
*/
});
}
if (typeof true_posts !== 'undefined') {
$(window).scroll(function () {
var bottomOffset = 1000; // отступ от нижней границы сайта, до которого должен доскроллить пользователь, чтобы подгрузились новые посты
var data = {
'action': 'loadmore',
'query': true_posts,
'page': current_page
};
if ($(document).scrollTop() > ($(document).height() - bottomOffset) && !$('body').hasClass('loading')) {
$.ajax({
url: ajaxurl,
data: data,
type: 'POST',
beforeSend: function (xhr) {
$('body').addClass('loading');
},
success: function (data) {
if (data) {
$('#true_loadmore').before(data);
$('body').removeClass('loading');
current_page++;
openModal(); // вызов функции открытия модального окна
if (current_page == max_pages) $('.menu-content__preloader').remove(); // если последняя страница, удаляем кнопку
} else {
$('.menu-content__preloader').remove(); // если мы дошли до последней страницы постов, скроем кнопку
}
}
});
}
});
}
setInterval(animationCenter, 4000);
$(window).on('resize', function () {
if ($(window).width() <= 1049) {
$('.bounce-animation--center').stop(true, true);
$('.bounce-animation--center').css({
bottom: 0
});
return;
}
animationCenter();
})
function animationCenter() {
if ($(window).width() > 1049) {
$('.bounce-animation--center').animate({
bottom: '50px'
}, 2000, function () {
$(this).animate({
bottom: '0px'
}, 2000);
});
}
}