У меня на главной странице есть блок (который имеет свое оформление) с анонсами. Естественно, когда они уже являются неактуальными, они продолжают висеть, если новые анонсы не постяться…
Хотелось бы сделать через кастом-филдз такую возможность задавать дату, до которой анонсы актуальны.
Я написал что-то типа
// БЛОК АНОНСІВ
$cat_block = 28; // номер рубрики
$block_count = 2; // кол-во записей в блоке
$i = 0;
query_posts('cat=' . $cat_block . '&posts_per_page=' . $block_count);
$anonsexpiry = get_post_meta($post->ID, 'aexp', $single = true); ?>
<?php if($anonsexpiry !== '') {
} else {
echo $block_do;
echo '<div class="block"><h1><a href="http://www.necu.org.ua/category/anonsy/">Анонси</a></h1></div><hr>';
if (have_posts()) :
while (have_posts()) :
the_post();
require('main-home-loop.php');
endwhile;
endif;
echo $block_posle;
}
Теперь осталось две задачи
1. понять как лучше задавать через касотм филдз дату и как ее сравнивать с датой текущего дня
2. сделать как-то так чтобы из выводящихся двух постов публиковались только актуальные (т.е. чтобы каждый из постов проверялся на актуальность…)
Буду признателен за идеи и варианты воплоения (можно спримерами кода 🙂 )
Хотел решить проблему вот таким вот заросом:
Но чего-то не заработало. Наверное что-то снова напутал…
Ну вот еще переделал.
Посты выводит, но фильтр по датах через кастом филдз всеравно не срабатывает… В чем моя ошибка?
Ю.Б.? 🙂
Шо? 🙂 Боюсь, что через стандартную кверь запрос с кастомфилдом не прокатит, что нужно сочинять свой SQL-запрос.
Собрав идеи с разных форумов, намутил вот такой в принципе рабочий код (по крайней мере, дату в кастом филде он считывает, сравнывает с текущей и выводит только актуальные посты)
Вот только когда я попытался с помощью счетчика запускать открытие и закрытие дивов для этого блока с анонсами, то понял что счетчик как-то странно считает:
http://www.necu.org.ua/wp-content/uploads/wtf.jpg
Может кто-то понимает где я ступил?
А почему не
считаем то с нуля. 0, 1 = 2 поста
Ещё
здесь = операция приравнивания, но не сравнения. сравнение в php обозначается ==
Точно! Все кроется в мелочах!
в этом
if ($i = 1)
вся порча была 🙂 Поскольку тут переменной присваивась единица, то код выполнялся некорректно.
Спасибо за наводку!
Итак, готовый рабочий код, если кому-то надо
еще раз всем спасибо за подсказки!