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

Нужно – чтобы в 12 ночи, все посты за число, которое было до 00:00 переходили на предыдущую страницу (при чем постов за день может быть от 0 и до 15), а на главной была бы пустота до тех пор пока не добавятся посты за сегодняшний день. А листание страниц, чтобы было подобно: "день вперед" и "день назад", тоесть на одной странице предыдущей может быть 5 постов, а на другой странице 3, а на следующей вообще 0. Как такое сделать?!
Ещё идеально чтбы выше самого верхнего поста была дата, чтобы когда человек бродил по страницам – не терялся во времени.

query_posts
http://codex.wordpress.org/Template_Tags/query_posts#Time_Parameters

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

if (is_home()) {
query_posts($query_string . '&cat=13&monthnum=' . date('n',current_time('timestamp')));
}

наверно если monthnum заменить на day будет показывать посты за текущий день?

а страницы тоже по дням будут делиться если количество постов в каждый день не будут равны между собой?

if (is_home()) означает, что этот код только для главной страницы, другие страницы сайта не затронет.

нет, нужно чтобы страницы разбивались не по количеству постов а по дням…

уберите if (is_home())

не получается – пропадают записи которые не в этот день… а страниц не создается

дело в том что показывает только один последний пост удовлетворяющий этому параметру

Как вариант – на морде (home.php) только посты за сегодня (решение выше), остальное – как архив с поденной навигацией, каким-нибудь плагином.

какой хом пхп. я уже писал в индексе, там показывается только один пост…

Значит что-то не так делаете. У меня добавление в home.php строки
<?php query_posts(‘posts_per_page=-1&cat=1&year=2000&monthnum=2&day=11’);?>
замечательно вывело на морду все сообщения за 11 февраля 2000 года.

У меня несколько иная хотя и похожая проблема.
На сайте выводятся 6 последних записей, в правой колонке (newsportal) ссылки на последние 10 (я сделал 8) статей, конструкция такая:

<?php

$today = current_time(‘mysql’, 1);

if ( $recentposts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = ‘publish’ AND post_date_gmt < ‘$today’ ORDER BY post_date DESC LIMIT 8")):

?>

<h3><?php _e("Свежие записи"); ?></h3>

<ul>

<?php

foreach ($recentposts as $post) {

if ($post->post_title == ”)

$post->post_title = sprintf(__(‘Запись №%s’), $post->ID);

echo "<li><a href=’".get_permalink($post->ID)."’>";

the_title();

echo ‘</a></li>’;

}

?>

Как ее поменять чтобы показывался ТОП 5 или 10 неважно популярных статей, как у тебя на сайте "Самое читаемое". Лучше кодом плагинами наверное возможно, но уж замахался дизайн править.

Пока нашел конструкцию в StatPress

$qry_t = $wpdb->get_row("
SELECT count(date) as pageview
FROM $table_name
WHERE feed=”
AND spider=”
AND date = ‘$today’
");
print "<td>"<a href=’" . $qry_t->pageview . ."’>"</td>\n";

Но неполучается, буду думать.

Но неполучается, буду думать.

Только ради бога, не надо сюда постить всё, что не работает. Хорошо?

Anonymous
Отправить
Ответ на: