Календарь событий без плагина

Код, отображающий календарь событий, как прошедших, так и еще только намечающихся.

Допустим в sidebar вам нужно вывести события которые должны пройти в какой то будущий день, и вы хотите показывать посетителям сайта эти события которые еще не прошли.
К примеру на моем сайте это афиша мероприятий.

Чтобы вывести афишу событий вам нужно создать у записи произвольное поле в таком виде:

Имя поля: data_end_gg_mm_dd
Значение: 11.08.04

Где Значение — просто дата события вида — Год.Месяц.День (вводите все числа двумя цифрами гг.мм.дд)

Далее в нужное место в sidebar вставляем код:

ID, 'data_end_gg_mm_dd', true); // получаем произвольное поле

list($yearpost, $monthpost, $daypost) = explode(".", $data_end_post); // преобразуем дату в человечный вид
$arrpost = array(1 => "января", 2 => "Февраля", 3 => "марта", 4 => "апреля", 5 => "мая", 6 => "июня", 7 => "июля", 8 => "августа", 9 => "сентября", 10 => "октября", 11 => "ноября", 12 => "декабря"); // преобразуем дату в человечный вид
if(preg_match("|^d{2}$|", $yearpost)) $yearpost = "20$yearpost"; // преобразуем дату в человечный вид

if ($data_end_post 
<li><a href="" title=""></a> (дата события: </li>

не забываем поменять в 3 строке: cat=3&showposts=15
Где:
cat= ID категории
showposts= Сколько записей отображать

В принципе такой простой код. Задавайте вопросы в комментариях.

zetrider

Кодинг, дизайн, wordpress

Оцените автора
Добавить комментарий

  1. answersolid

    Уважаемый zetrider, а как разделить эти мероприятия на две колонки — одна с анонсами будущих, одна с прошедшими?

    Ответить
  2. zetrider автор

    при помощи CSS и небольшой правкой кода в этом месте:

    if ($data_end_post <= $date_today_server) // если наша дата меньше или равна дате на сервере то выводим посты 
    {} else {
    Ответить
    1. answersolid

      Спасибо, буду разбирать)

      Ответить
  3. dim555

    Подскажите как сделать подобное как на этом сайте http://www.calend.ru,(именно сегодня такое то число и выводятся праздники за это число) все уже перепробовал и плагины разные. Может можно как то с помощью произвольных полей, допустим я указываю дату праздников в производном поле(только число и месяц праздника), а мне потом уже каждый год в это число и месяц будет выводиться этот праздник. Праздники это будет просто список статей на блоге с указанной датой этого праздника в произвольном поле.

    Ответить
  4. zetrider автор

    Вашу задачу решить очень просто. Вы правы при помощи произвольных полей. Просто нужно создать PHP условие которое будет сверять вашу даты с сегодняшней, не учитывая год.
    Дальше разберетесь?

    Ответить
  5. asha

    Помогите, пожалуйста! Как создать это условие? Я совсем не знаю, просто «0» в php
    Мне надо вывести в левом сайдбаре 1 статью из рубрики «Календарь меломана» за текущее число.
    Например для sidebar.php нашла код:

    Календарь событий

    have_posts()) : $the_query->the_post(); $do_not_duplicate = $post->ID; ?>

    » href=»» rel=»bookmark»>


    Но у меня он не работает! Как добавить произвольное поле?, и какое должно быть его значение?, пребывала ставить 0 и писать ‘showposts=1&meta_key=kalendar&meta_value=0 ‘ ничего не получается, тем более условия написать которое будет сверять даты с сегодняшней, не учитывая год.
    Заранее, спасибо!

    Ответить
  6. zetrider автор

    можно сделать так:

    <?php $datemeloman = date('d.m'); // сегодняшняя дата $meloman = new WP_Query('cat=1'); // из категории с ID 1 (укажите свой нужный ID) while($meloman->have_posts()){ $meloman->the_post(); $mydate = get_post_meta($post->ID, 'date', true); // получаем произвольное поле if($mydate == $datemeloman) { // если дата сегодня совпадает с датой в произвольном поле, то выводим запись ?> " title="<?php the_title_attribute(); ?>"><?php the_title(); ?> <?php } } wp_reset_postdata(); ?>

    Добавляем к записи произвольное поле с именем: date
    в значение пишем дату следующего формата: дд.мм
    к примеру 01.12
    где 01.12 = 01 декабря

    Ответить
    1. asha

      Большое спасибо!!! Все получилось)))))))

      Ответить
  7. Виталий Сафонов

    Почему-то не выводит дату события. Просто пишется ( дата события:
    В чём может быть проблема, подскажите пожалуйста.

    Ответить
  8. koder

    Напиши нормальном виде свою статью (половина кода нету)

    Ответить
  9. koder

    tufta tufta tufta

    Ответить