@alex_mirg

Как в wordpress привязать посты к дням месяца и выводить в зависимости от выбранного дня?

Направьте пожалуйста как реализовать такую задачу:
Нужно на главной странице выводить меню правильного питания на каждый день, с помощью Ajax .

НА САЙТЕ:
Пользователь заходит на страницу выбирает нужный день загружается меню где он выбирает (мужчина/женщина)
На экран выводится нужное меню.

ИЗ АДМИНКИ:
Админ заходит в админку: распределяет на 1-2 недели вперед в какой день какое меню должно выводиться.
На мой взгляд очень здорово было бы отмечать все это в каком то календаре

СКРИНШОТ:
5c6c39a9cbf44346873903.jpeg

МОЙ ПЛАН:
1. Создаю произвольный тип записей (запись содержит одновременно меню для мужчины и женщины.)
2. Сайт на bootstrap, поэтому с помощью бутстрап табов запись разделяется на две части (мужчина/женщина)
3. Создается календарь, в котором устанавливается к каким дням какие записи прикрепить.
Настроить вывод с помощью ajax.

ВОПРОСЫ:
1. Правильно ли я составил план действий?
Если нет, подскажите, как лучше реализовать данную задачу?
2. Каким образом создать распределение записей по дням? И как настроить вывод именно по дням?

Пока что не догадываюсь куда копать.

P.s. Я уже умею создавать кастомные типы записей, таксономий. C помощью произвольных полей заполнять эти записи. Также научился выводить записи с помощью ajax.
Но вот с сортировкой и выводом по календарю еще не сталкивался
  • Вопрос задан
  • 332 просмотра
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
1. День храним в postmeta (произвольное поле) или в таксономии (дни ведь будут повторяться, 1...31, верно?)
2. Выводим запросом get_posts() или WP_Query, составим параметры в нужном виде (meta_query если произвольное поле, tax_query если таксономия)
3. Профит.

Если совсем грубо, в вашем ajax-коллбеке (php-функции) добавляем:
$args = [
    'posts_per_page' => 1, // запись ведь у нас одна будет
    'no_found_rows' => true, // не нужно SQL_CALC_FOUND_ROWS, запрос будет сильно быстрее выполняться
    'post_type' => 'custom_post_type_name', // название кастомного типа записи
    'post_status' => 'publish', // только опубликованные
    // тут пишем meta или tax подзапрос (см. ссылки на документацию выше)
];
$query = new WP_Query( $args );
// Наш пост будет в массиве $query->posts
$post = reset( $query->posts );
// Ну или делайте обычный WordPress Loop - тут уж как удобнее.


Но вообще я бы отдельно хранил меню для женщин и мужчин, как отдельные посты. День - полной датой в метаданных. И забирал данные аяксом через коллбек, а с помощью REST API. Тогда в фильтр апишки достаточно передавать мета-поле (название и искомое значение). Все это есть в документации по REST API.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы