Вопрос по выводу праздников на сегодня (Wordpress)

1 23
N
На сайте с 06.07.2010
Offline
111
#21
Gerga:
давайте с самого начала. У вас на сайте уже есть праздники, только нужно вывести те, которые сегодня?

Да, практически все праздники года). Нужно в определённой рубрике вывести праздники, которые проходят сегодня.

Gerga
На сайте с 02.08.2015
Offline
94
#22

nepeyvoda, вы каким-то образом устанавливаете дату праздника? Если да - как?

N
На сайте с 06.07.2010
Offline
111
#23
Gerga:
nepeyvoda, вы каким-то образом устанавливаете дату праздника? Если да - как?

Нет, раньше не было такой цели. Дата празднования указана только в тексте.

Gerga
На сайте с 02.08.2015
Offline
94
#24

nepeyvoda, вот это уже не очень хорошо, необходимо ее проставить.

Есть 2 варианта:

1. Используя произвольную таксономию или метки;

2. Используя произвольные поля (post_meta).

Если не нужны отдельные страницы по датам (как на calend.ru), можно использовать 2. Поле ввода даты можно добавить с помощью плагина https://ru.wordpress.org/plugins/advanced-custom-fields/ .

Для имеющихся праздников можно попробовать программно заполнить дату, но для этого нужно покодить. Можно и руками заполнить :).

После этого уже можно будет вывести сегодняшние праздники для категории.

N
На сайте с 06.07.2010
Offline
111
#25

Хорошо. Метка "0410" или дата "04.10" через произвольное поле. Как их вывести в рубрике? Что нужно, чтобы WP определял какая сегодня дата и выводил посты для этой даты по метке?

Gerga
На сайте с 02.08.2015
Offline
94
#26

nepeyvoda, да, а это уже самое простое :) . Если через метки, так можно получить праздники:


$holidays = get_posts(array(
'numberposts' => 99,
'post_type' => 'post', // тип записи
'tag' => current_time('d-m'), // текущая дата в формате день-месяц
'cat' => get_queried_object_id(), // текущая категория
));

А так вывести:


global $post;

foreach ($holidays as $post) {
setup_postdata($post);
get_template_part('template-parts/holiday');
}

wp_reset_postdata();

template-parts/holiday.php:


<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>

Функция current_time возвращает текущее время часового пояса из настроек. Первым параметром она получает формат даты. Если заполнили метки так: "04-10" (день-месяц), тогда формат такой: "d-m".

1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий