query_posts()
, это глобальный запрос, который используется ядром WP, вы его сломаете. Для запросов используйте wp_query()
the_field()
не используется<div class="swiper-slide swiper-slidet">
<span class="tab-time">
<?php the_field('date'); ?>
</span>
<div class="tab-content">
<?php the_content(); ?>
</div>
</div>
$cities_names = ['Новокрибирск', 'Керамзин', 'Ос Альта', 'Новый Зем'];
echo '<span id="city-name">' . $cities_names[0] . '</span>';
echo '<select id="cities" name="cities" class="selector">';
foreach ( $cities_names as $keyC => $cities_name ) {
echo '<option value="' . $cities_name . '">' . $cities_name . '</option>';
}
echo '</select>';
jQuery(document).ready(function ($) {
// устанавливаем значение из localStorage, если оно есть
var cityData = localStorage.getItem( 'cityData' );
if ( null !== cityData ) {
$( '#city-name' ).html( cityData );
}
// функция изменения селекта
$( '.selector' ).change( function(e) {
var value = $(this).val();
$( '#city-name' ).html( value ); // меняем город
localStorage.setItem( 'cityData', value ); // добавляем его localStorage
});
});
next_posts_link()
и previous_posts_link()
будут брать данные только из глобального запроса. Даже если вы укажите в кастомном запросе showposts=5, эти функции все равно будут считать, что на странице выводятся по 10 постов (берут данные из глобальных настроек)the_posts_pagination()
, тоже работает только с глобальным объектомnext_posts_link()
и previous_posts_link()
работают только с глобальным запросом и не будут работать с кастомным WP_Query()
pre_get_posts
add_action( 'pre_get_posts', 'wpz_home_pagesize', 1 );
function wpz_home_pagesize( $query ) {
// Выходим, если это админ-панель или не основной запрос.
if ( is_admin() || !$query->is_main_query() )
return;
// Выводим только 5 постов на главной странице
if ( is_home() ) {
$query->set( 'posts_per_page', 5 );
}
}
$i = 1;
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/content', get_post_format() );
// после каждого пятого поста выводим баннер
if ( is_int( $i++ / 5 ) ) {
get_template_part( 'template-parts/content', 'offer' );
}
endwhile;
get_the_category()
собрать массивы в массиве родительских категорий$categories = get_the_category();
$out = array();
foreach ( $categories as $key => $category ) {
$out[$category->category_parent][$category->term_id]['title'] = $category->name;
$out[$category->category_parent][$category->term_id]['link'] = get_term_link( $category->term_id, 'category' );
}
foreach ( $out as $keyP => $cats ) {
// пропускаем, если рубрика родительская
if ( $key === 0 )
continue;
echo '<ul class="cats cats-inline">';
foreach ( $cats as $key => $cat ) {
echo '<li class="cats--item"><a href="' . $cat['link'] . '" class="cats--link">' . $cat['title'] . '</a></li>';
}
echo '</ul>';
}
get_the_category()
не будет. Если для работы они вам нужны, то id родительской категории находится в переменной $keyP. Вы можете получить для них данные с помощью get_category()
в цикле или предварительно собрать список $ids и получить одним запросом:$parents = array();
foreach ( $categories as $key => $category ) {
//проверяем, что категория не родительская и ее нет в общем массиве
if ( $category->category_parent !== 0 && !in_array( $category->category_parent, $parents ) ) {
$parents[] = $category->category_parent;
}
}
$args = [
'taxonomy' => 'category',
'include' => $parents,
'fields' => 'id=>name',
];
$terms = get_terms( $args );
foreach ( $out as $keyP => $cats ) {
if ( isset( $terms[$keyP] ) ) {
echo $terms[$keyP];
}
}
$working_hours = [
'1' => '10:00 — 19:00', // понедельник
'2' => '10:00 — 19:00',
'3' => '10:00 — 19:00',
'4' => '10:00 — 19:00',
'5' => '10:00 — 20:00', // пятница
'6' => '10:00 — 15:00', // суббота
'7' => __( 'Day off', 'textdomain' ) // воскресенье
];
$current_day = date( 'N' );
echo strtr( $current_day, $working_hours );