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

Допустим в 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 
  • <a href="" title=""> (дата события:
  • не забываем поменять в 3 строке: cat=3&showposts=15
    Где:
    cat= ID категории
    showposts= Сколько записей отображать

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

    Автор zetrider 32 Articles
    Кодинг, дизайн, wordpress

    11 Комментарии

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

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

      if ($data_end_post < = $date_today_server) // если наша дата меньше или равна дате на сервере то выводим посты 
      {} else {
    3. Подскажите как сделать подобное как на этом сайте http://www.calend.ru,(именно сегодня такое то число и выводятся праздники за это число) все уже перепробовал и плагины разные. Может можно как то с помощью произвольных полей, допустим я указываю дату праздников в производном поле(только число и месяц праздника), а мне потом уже каждый год в это число и месяц будет выводиться этот праздник. Праздники это будет просто список статей на блоге с указанной датой этого праздника в произвольном поле.

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

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

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

      < ?php $the_query = new WP_Query('showposts=1&meta_key=kalendar'); while ($the_query->have_posts()) : $the_query->the_post(); $do_not_duplicate = $post->ID; ?>

      ” href=”< ?php the_permalink() ?>” rel=”bookmark”>< ?php the_title(); ?>

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

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

      < ?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) { // если дата сегодня совпадает с датой в произвольном поле, то выводим запись
      ?>
      
      < ?php the_title(); ?>
      
      < ?php
      }  
      }  
      wp_reset_postdata();
      ?>

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

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

    Оставить комментарий

    Ваш электронный адрес не будет опубликован.


    *