single.php

include (TEMPLATEPATH . '/searchform.php');
if (have_posts()) : while (have_posts()) : the_post();
the_time('F j, Y'); сентябрь 28, 2006
the_author(); Yantar
the_category(', '); wordpress, для продолжающих
the_ratings();
раз снежинкадва снежинкатри снежинкаа я четвертую сорву!отличная снежинка (голосов: 25)
UTW_ShowTagsForCurrentPost("commalist"); Ключевые темы: No Tags
show_post_count(); Просмотров: 77643

the_content();

Иногда, чтобы стимулировать случайного посетителя еще побродить по блогу, стоит показать ему, что у вас еще есть на заинтересовавшую его тему. Если поместить следующий незамысловатый код в шаблон single.php, он выведет десяток постов из той же категории, к которой относится просматриваемый пост:

$posts = get_posts('numberposts=10&category='.$cat);
foreach($posts as $post) :
?><a href="<?php the_permalink(); ?>"><?php the_title();?></a>
<?php
the_excerpt(); 
endforeach; 

UPDATE: Возилась по мелочи с другим блогом и обнаружила, что в нем, в шаблоне Single Post переменная $cat не определена. Насколько я понимаю, причина жалоб в комментариях на то, что написаный выше код не работает, именно в этом. Пока я не разобралась, почему эта переменная так странно работает (возможно, из-за каких-то плагинов). Но вот работающее решение для тех, у кого не получалось:

<?php
foreach((get_the_category()) as $mycat) {
  $posts = get_posts('numberposts=10&category='.$mycat->cat_ID);
  foreach($posts as $post) :?>
    <li><a 
    href="<?php the_permalink(); ?>"><?php the_title();?></a></li>
    <?php
  the_excerpt();
  endforeach;
}
?>

Внимание: если вы имеете обыкновение помещать одну запись в несколько категорий, то этот код выведет по десятку постов из каждой из них. Чтобы такого не случилось, можно сделать так:

<?php
$mycat=get_the_category();
$mycat=$mycat[0];
  $posts = get_posts('numberposts=10&category='.$mycat->cat_ID);
  foreach($posts as $post) :?>
    <li><a 
    href="<?php the_permalink(); ?>"><?php the_title();?></a></li>
    <?php
  the_excerpt();
  endforeach;
?>

Насколько этот текст оказался полезным?
раз снежинкадва снежинкатри снежинкаа я четвертую сорву!отличная снежинка (голосов: 25)
comments_template();

Комментарии (39) к записи «несколько постингов текущей категории»

  1. rainyday Says:

    Привет, код или не рабочий или криво написан, т.е. на сайт именно, если это продолжение переменной в single.php то ее там нет или хотя бы намекни где ее искать там, если это отдельный самостоятельный скрипт, то где у него начало? Если есть возможность помоги поставить себе.. у меня WP 2.0.4

  2. nachberlin Says:

    а что конкретно не работает? только что вставила (уже убрала) на этот сайт в single.php этот код, и все прекрасно сработало (за исключением того, правда, что комментарий исчез:-(). это не “продолжение переменной”, это несколько строчек, которые работают as is. Вставлять их лучше после строчек, которые показывают нужный пост в single.php

  3. Владимир Says:

    Спасибо. Впринципе работает. Но выводит так: весь пост повторно, а зетем список других. Вы не дописали символы . Попробую найти причину

  4. Pepsimist Says:

    Убрал the_excerpt();, чтобы остались лишь заголовки, и выводит все нормально, только плюет слюной на категории и тупо выводит просто десять последних. Как бы это поправить?

  5. nachberlin Says:

    Тем, у кого что-то не получалось: посмотрите UPDATE, возможно, он поможет.

  6. Mixa Says:

    Все офигеть работает, только вот у меня получилось вставить его только после комментариев - иначе кроме постов выводились и их комментарии..
    И еще непонятно, как исключить из списка постов на эту же категорию ссылку на сам пост, в котором транслируется анонс?
    И самое главное, что меня интересует, как анонсировать посты ОПРЕДЕЛЕННОЙ категории не в посте, а на СТРАНИЦЕ?

  7. Pepsimist Says:

    Спасибо, список теперь выводится нормально.

    Вот только комменты к оригинальному посту заменяются теми, что относятся к последнему посту из выведенного списка.

    Это как-то можно поправить?

  8. nachberlin Says:

    Pepsimist: в этом случае перед кодом добавьте строчку
    $mainId=$post->ID;
    а после кода
    $post=get_post($mainId);

  9. Pepsimist Says:

    Ага, здорово. Теперь все ништяк! Спасибо!

  10. red4x Says:

    спасибо, все работает!

  11. nik Says:

    ты написал классный скрипт с отображением заголовков записей. я его вставил в свой сайдбар и он все отлично показывает, но случился странный глюк, при пролистывании страниц сайта все страницы отображают содержимое первой страницы. то есть, например на 4-ой странице та же информация что и на первой. не надписи в сайдбаре, а именно содержимое страницы. в чем может быть дело?

  12. Yantar Says:

    nik: дело в том, что этот скрипт предназначен для отображения на странице с одной записью - то есть либо в шаблоне single.php, либо внутри условия if(is_single())
    если хочется использовать это как-то по-другому - сообщите, как именно

    p.s. я девочка, а не мальчик

  13. nik Says:

    Я хотел сделать так, чтобы в сайдбаре отображались заголовки последних 10 записсей моего блога.

  14. Yantar Says:

    тогда надо либо сайдбар прописывать после вывода основных шаблонов, либо в каждом шаблоне прописывать query_posts соответственно. пример, как это можно сделать, написан тут: http://trampampam.ru/blog/wordpress/query_posts/

  15. nik Says:

    А как прописать сайдбар после вывода основных шаблонов?

  16. Yantar Says:

    я бы не советовала Вам сейчас заниматься этим самостоятельно
    почитайте сначала подробнее про темы для вордпресс - на maxsite.org или slaff.net

  17. 848604 Says:

    thx

  18. Yantar Says:

    rainywill - это уже надо отдельный плагин писать

  19. RainyWill Says:

    Привет, рад такому быстрому ответу )))
    отдельный…. это трудно , прости за вопрос а на основе этого никак такое не сделать? Или ты точно за это браться не будешь? Просто я искал подобный и не нашел под WP.
    Варианта подобного “плагина” тогда уже.. есть два..
    1. как я сказал, рандомно в 2 колонки заголовоки постов с (кол-вом комментариев)
    2. в 1 колонку но с к примеру по 150 символов из поста

    Интересно… и странно что такого нет, оживило бы блог намного, особенно когда записей уже под 300, найти повтор почти невозможно, всегда что - то новое в итоге

  20. Yantar Says:

    мне кажется, наверняка есть уже такие плагины на wp-plugins.net

  21. Yantar Says:

    ну что я могу сказать - учите английский, он очень помогает в жизни :-)
    код должен выглядеть примерно так:

    <code>
    <?php
    $mycat=get_the_category();
    $mycat=$mycat[0];
    global $wpdb;
    $numposts = 5;
    $rand_posts = $wpdb->get_results("SELECT * FROM $wpdb->post2cat,$wpdb->posts,$wpdb->categories WHERE
    $wpdb->post2cat.post_id = $wpdb->posts.ID and $wpdb->post2cat.category_id = $mycat and $wpdb->posts.post_status = 'publish'  and $wpdb->posts.post_type = 'post' ORDER BY RAND() LIMIT $numposts");
    foreach($rand_posts as $post) :
    setup_postdata($post);
    ?>
    <li><a 
        href="<?php the_permalink(); ?>"><?php the_title();?></a></li>
        <?php
      the_excerpt();
      endforeach;
    ?>
    </code>

    (я его не проверяла)

  22. Деревянные окна Says:

    Чёта я ничё не понял…

  23. Andrey Troy Says:

    Можно ли сделать так, чтобы список постов оказывался в ТЕЛЕ статьи, внутри записи? Допустим, это помогло бы увеличить посещаемость сайта, так как в RSS будет приходить статья со списком похожих.

  24. Yantar Says:

    внутри - вряд ли. проще сделать рядом, сразу после, ну и рсс изменить соответствующим образом

  25. Знакомства в Интернете Says:

    Скрипт от Yantar не работает :(

  26. Yantar Says:

    Знакомства в Интернете - ну если мозг под спам заточен, то что тут сделаешь

  27. Okonkina Says:

    Там, где наблюдается высокий уровень городского шума, и вместе с тем есть насущная необходимость “делать надолго, качественно и красиво”, настоящим избавлением стали пластиковые окна, Москва в этом плане исключением не является. Пластиковые окна ПВХ завоевали признание среди самых широких масс населения и стали пользоваться большой популярностью как у простых потребителей, так и у профессионалов - строительных и проектных организаций, и касается это не только таких крупных городов, как Москва, Берлин или Нью-Йорк, а всего мира в целом. Легкие, прочные, удобные в эксплуатации, прекрасно зарекомендовавшие себя с самых разных сторон, пластиковые окна стали необходимым атрибутом комфортной жизни. Строгий четкий контур, устойчивость к погодным явлениям и легкость в уходе сначала сделали пластиковые окна ПВХ идеальной деталью офисного или производственного интерьера, но затем, с совершенствованием технологии их изготовления, они пришли и в жилые дома. И если раньше еще могли оставаться какие-то сомнения по поводу того, пускать или не пускать в дом профили ПВХ, то сегодня их нет - современные пластиковые окна не только красивы и высококачественны, но и абсолютно безопасны в экологическом плане.

    окна жалюзи

  28. отзывы на фильмы Says:

    Отличный скрипт, только хотелось бы чтобы у каждой записи отображался ее картинка (у меня картинки самого поста)… Как прописать цикл?

  29. evgen adam Says:

    у меня код не работает

  30. Yantar Says:

    evgen adam, это вы таким образом хотите спросить, что сделать, чтобы он заработал или просто свой сайт пиарите? :)
    чтобы ответить, мне нужно знать, как минимум, версию вордпресса, куда конкретно вы вставляете код, как именно он не работает (какую ошибку выдает).

  31. Руслан Says:

    Спасибо большое всё получилось.

  32. Руслан Says:

    Всё отлично работает,только ,как можно запретить показ записи в котором я нахожусь?

  33. Простой Says:

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

  34. Юрий Says:

    Скажите пожалуйста. А как вывести список постов из категории, в которой находишься, если этот пост выводиться с помощью пользовательского типа записей. т.е. есть пользовательский тип записей магазин, например. есть рубрики (обычные, не дополнительные таксономии). Если мы находимся в посте из произвольного типа записи из рубрики “Автомобили”, чтобы выводился список других записей из этой рубрики?

  35. yantar Says:

    Юрий, попробуйте прописать в фукции get_posts параметр ‘post_type’, например так:
    $posts = get_posts(’numberposts=10&post_type=”post”&category=’.$cat);

  36. Юрий Says:

    Я пробовал так делать. Не совсем корректно почему то работало. При клике по любой ссылке в области контента выводило содержимое контента последней записи.
    Сделал таким образом

    cat_ID); ?>

    “>

    Спасибо за внимание к моему коменту.

  37. Yantar Says:

    Юрий, напишите, пожалуйста кож, заменив угловые скобки квадратными

  38. Юрий Says:

    Да. Я увидел, что не прошел код.
    Я использовал такую конструкцию. Может кому то пригодится

    [?php $mycat=get_the_category(); $mycat=$mycat[0]; ?]
    [?php $postslist = get_posts(’post_type=madein&numberposts=-1&orderby=title&order=ASC&category=’.$mycat->cat_ID); ?]

    [?php foreach ($postslist as $post) : setup_postdata($post); ?]
    [?php the_title();?]
    [?php endforeach; ?]

    Для использования нужно поменять все [ на {

  39. yantar Says:

    т.е. в итоге все заработало?

Есть комментарии?

show_manual_subscription_form();

Subscribe without commenting

endwhile;