Календарь get_calendar()
-
Здравствуйте.
Обычный wp календарь, выводимый get_calendar().
Как эту заразу заставить показывать только события определенной категории? Или хотя бы исключить какую-нибудь категорию из отображения?
Ничего не помогает.
-
Ничего не помогает.
Если в этой функции не предусмотрены фильтры, то никто ведь не мешает переписать её и использовать свой вариант 😛
Так там не в функции дело, а в чем то другом. Понять не могу, прошу помощи.
а в чем то другом.
А вы можете показать это «что-то другое«?
И что вы пробовали (а самое главное — «как пробовали»), и что конкретно не получается?Я просто ещё один юзер, который не разбирается во внутреннем устройстве wp.
Пробовал всё что нагуглил. Догадываюсь что дело в archive.php. Однако, не могу понять как всё связано, вот и решил спросить решения у сообщества, может кто уже сталкивался. Всё-таки исключить категорию из стандартного календаря, должно быть такую тему поднимали, нужно же многим наверное (поиском не нашел).Похоже, что совсем никому не надо 🙂
Догадываюсь что дело в archive.php
Это обычный шаблон, «отрабатывающий» для вывода архивов, многочисленная дублирующая система (как на Боингах) вывода.
Ответ я вам написал:
Если в этой функции не предусмотрены фильтры, то никто ведь не мешает переписать её и использовать свой вариант
Попытаюсь раскрыть глубокий смысл 🙂Поведение движка (форма и содержимое результата) можно изменить с помощью фильтров (хуков), есть такая возможность http://codex.wordpress.org/Plugin_API и
Мой мини-обзор работы фильтраЕсли фильтр (хук) отсутствует, ну, забыли его вписать разработчики, то можно поступить, как поступает любой школьник в школе, берёте функцию, переписываете её под своим именем, например
get_my_calendar()
, модифицируете в ней нужное вам место и вызываете там, где оно необходимо.Как найти фильтр? Смотреть исходный код этой функции https://core.trac.wordpress.org/browser/tags/4.1.1/src/wp-includes/general-template.php#L1529.
Бинго! 😀
Я вам конечно благодарен за такой развернутый ответ.
Однако.
Неужели действительно никому не было нужно ограничить календарь?
Для меня, как для простого юзера, нет решения такой задачи? Я бы даже понял что делать, приведи вы конкретные примеры в php.
«Найди проблему и реши её» вот что вы только что написали, это не очень помогает, учитывая то, что я обратился к сообществу, именно не найдя решение.учитывая то, что я обратился к сообществу
В этом и есть преимущества и недостатки Сообщества.
Если один, в данном случае — я, не нашёл времени, желания или чего другого для полноценного ответа, то найдётся обязательно другой сообщник :D, у кого нет ограничивающих обстоятельств.Я рассказал в общих чертах, как обычно работают с WP и как устроен WP. Конечно, не спорю, я таким образом преследую свою цель — исключить случайных людей из кодинга, подталкивая их привлекать специалистов, а опытные смогут разобраться и на основе этих ответов.
Я просто ещё один юзер, который не разбирается во внутреннем устройстве wp
Тогда ищите плагины по ключевому слову calendar или wp calendar Я встречал очень продвинутые календари с кучей настроек, в том числе с теми, которые нужны Вам
Если в этой функции не предусмотрены фильтры
Предусмотрены. Пока только для итогового вывода, а не для SQL-запросов, но этого должно хватить.
Я бы даже понял что делать, приведи вы конкретные примеры в php
Можно посмотреть в сторону примера, найденного на англоязычном форуме. Там функция
get_calendar_custom()
приведена отдельно, но её можно привязать с помощью фильтра кget_calendar()
.Можно также поискать плагины, как советует Konstantin.
Пока только для итогового вывода, а не для SQL-запросов, но этого должно хватить.
Они и для SQL-запросов есть. Только проблема в том, что в WP нет понятия контекст хука. Есть, конечно, попытка обложиться булевыми флагами, но оно не сильно как-то помогает 😀
Поэтому только сравнивать по некой уникальной сигнатуре этот запрос и изменять на свой лад. Я говорю о фильтреquery
.Проще использовать тот вариант, на котором я настоятельно настаиваю — переписать на свой лад генерацию календаря 🙂
Если кто ищет сабж — плагин Calendar Category — добавляет простой календарь по отдельной категории, оформление берёт от родного get_calendar(), то что надо.
Всем спасибо за ответы, узнал много интересного.
- Тема «Календарь get_calendar()» закрыта для новых ответов.