задача для WP

A
На сайте с 12.01.2006
Offline
61
422

Доброго времени суток всем.

Пройдите сюда:

http://img522.imageshack.us/img522/4407/60400617.jpg

На картинке шаблон сайта. Сайт сделан на вордпресс. Можно заметить, что две картинки повторяются, это есть одинаковые посты. Верхний пост это ТОП новость, т.е. самая последняя новость на сайте. Четыре блока чуть ниже это блоки рубрик.

Задача.

Нужно сделать так, чтобы когда автор добавляет свежую новость на сайт она появляется как ТОП новость, но не появляется в своей рубрике, в блоке. На ее месте (в блоке) выводится более поздняя новость.

Когда автор решает добавить новую статью, она занимает место ТОПовой, а ТОПовая в то же время занимает свою рубрику.

Каким образом это реализовать? :gm:

ГЛАВная фарма-партнерка. Удобные аптеки, детальная статистика, высокий конверт! (http://www.glavmed.com/) | 150$ Бонус всем новичкам в ПОКЕРЕ (http://ru.pokerstrategy.com/u1XCQ7) $$$ на дороге (http://www.sape.ru/r.b17970ce21.php)
D
На сайте с 11.03.2008
Offline
15
#1

Весь код писать не буду:), попробовать можно так:

Первый способ:

  • Вывести ТОП новость с помощью get_posts('numberposts=1')
  • Запомнить ID этого поста ($last_post_id = $post->ID)
  • Для каждого блока категорий вывести свои посты, исключая последний добавленный - get_posts('numberposts=сколько_надо&category=...&exclude=$last_post_id')

Второй способ:

  • Вывести ТОП новость с помощью get_posts('numberposts=1')
  • Запомнить id категорий этого поста
  • Для каждого блока категорий вывести свои посты:
Arganat
На сайте с 27.06.2007
Offline
36
#2

dimuch, Спасибо за ответ. Решение нужно было мне, попросил запостить брата.

Я полный ноль в программировании, поэтому у меня ничего не получилось :)

На форуме поддержки вопрос даже не стали рассматривать, видать лузовый больно.

Твоя помощь еще раз (и конечно, помощь других) будет очень кстати.

Приведу то, что я вставил.

Так выглядит блок ТОП новости:


<div class="post-top">

<?php get_posts('numberposts=1'); ?>

<?php if (have_posts()) : while (have_posts()) : the_post();$last_post_id = $post->ID ?>

<h1><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1>
<?php the_excerpt_reloaded(); ?>

<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
</div>

Вроде бы сделал все как ты описал выше. Но почему-то выводится не одна (как указано) а 5 записей, и на изменения этого значения не реагирует.

А это блок одной из рубрик:


<?php get_posts('numberposts=1&category=7&exclude=$last_post_id'); ?>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<strong>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</strong>

Вместо того, чтобы выводить вторую запись (первая должна быть в ТОПе), он выводит все записи из стандартной рубрики, созданной при установке WP.

Помогите пожалуйста.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий