Вывод списка постов для категории …

Как вывести список постов для категории в которой находишься?

Пробывал подключить

<?php
global $post;
$myposts = get_posts(‘numberposts=10&offset=0&category=3’);
foreach($myposts as $post) :
setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>

Но немного неполучилось… Тут определённую категорию сам задаёшь… а надо чтоб категория была та в которую ты зашёл…

p.s. прозьба прямыми ссылками в кодекс не ставить 🙁 я с англ. недружу, и пхп тоз знаю на уровне ковыряния в чужих кодах…

Буду ну ОООЧЕНЬ признателен за помощ…

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

<?php print get_category_link(31); ?>

а в шаблоне файл arhive.php отвечает за вывод постов в категории

<?php if (have_posts()) : $post = $posts[0]; while (have_posts()) : the_post(); ?>
    <p><?php the_time('d M'); ?></p>
        <p><a href="<?php the_permalink(); ?>" rel="bookmark" title="Подробнее &raquo; <?php the_title(); ?>"><?php the_title(); ?></a></p>
        <?php the_content(); ?>
    <?php endwhile; ?>

рекомендую так же поставить плагин WP-Pagenavi скачать тут -> http://wordpress.org/extend/plugins/wp-pagenavi/
а в коде после <?php endwhile; ?> поставить

<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>

не забудьте что плагин должен быть активирован. В файле arhive.php убрать ненужное:

<?php next_posts_link(__('&laquo; Older Entries', 'kubrick')); ?>
<?php previous_posts_link(__('Newer Entries &raquo;', 'kubrick')); ?>
пхп тоз знаю на уровне ковыряния в чужих кодах...

Тогда откройте любой файл archive.php в папке темы и посмотрите.

Получилось… А теперь усложняем 🙂 Надо чтоб когда зашёл в РУБРИКУ отображался список постов…. – Это сделали… Теперь надо чтоб когда заходишь в один из этих постов – отображался список постов категории поста в котором находиться пост в котором вы находитесь…

мдя… перепрочёл – офигел…

Короче если Есть РУБРИКА – "НОВОСТИ" и в этой рубрике посты "Новость 1","Новость 2","Новость 3" и когда заходишь в пост "новость 1" чтоб в меню продолжало отображаться все посты категории "НОВОСТИ"

Возможно вам поможет статья -> http://my-wordpress.ru/poleznoe/if-in_category-wordpress.php если не разберётесь пишите.
P.S. ковырять нужно файл single.php

прочёл статейку…. Но проблемка… Мне надо не исключать или добавлять конкретные категории… Мне надо выводить список постов категории в посте которой я нахожусь… Если я назначу вывод определённой категории то когда перейду в посты с другой категории то будет отображаться всёравно старая категория… вот в чём загвоздка у меня… про то что файл single.php калупать – я знаю… я его уже переколупал 100 раз…. К сожалению ничего не получаеться :(… Так что наверно статья та мне непоможет 🙁

Видимо, вы не внимательно прочли статью. Объясню. Вы находитесь в посте с рубрикой (х), для реализации того, что вы хотите, вам нужно:
1. Запросить id рубрики из которой просматриваете пост. Если не знаете как, смотрите в Базе знаний WP.
2. Сделать цикл как в статье.

Вот хоть убей – не получаеться 🙁 я в ПХП вообще несилён…

Может напишешь пример???

Погуглил что то похожее и почему то не нашёл, может плохо искал, ну да ладно.
В общем для начала разберём работу php скрипта.

1. Выводим саму новость.
2. Выводим N-e количество последних записей и этой рубрики.
3. Нельзя допустить дублирования постов.

и так 1-й и 3-й пункт:

<?php if (have_posts()) : while (have_posts()) : the_post();
 $do_not_duplicate = $post->ID;?> //помещаем ID выводимого поста в переменную

//выводим саму новость
        <p><?php the_time('d M'); ?></p>
        <p><a href="<?php the_permalink(); ?>" rel="bookmark" title="Подробнее &raquo; <?php the_title(); ?>"><?php the_title(); ?></a></p>
        <?php the_content(); ?>
        <?php endwhile; ?>

я думаю под шаблон настроите вывод.
теперь 2-й пункт:

//получаем ID категории
<?php $category = get_the_category();
      $cat_name = $category[0]->cat_name;
      $cat_id = get_cat_ID($cat_name);
      //выполняем запрос в базу данных
          $my_query = new WP_Query('showposts=4&cat='.$cat_id.''); //здесь showposts=4 - количество выводимых ПОСЛЕДНИХ постов из рубрики cat='.$cat_id.'
      //выводим список новостей
          if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); 
      if( $post->ID == $do_not_duplicate ) continue; update_post_caches($posts); ?> //тут идёт проверка на дублирование поста
          //собственно вид вывода постов, настроите сами
      <h3><a href="<?php the_permalink(); ?>" rel="bookmark" title="Подробнее &raquo; <?php the_title(); ?>"><?php the_title(); ?></a></h3>
      <?php the_time('d M Y'); ?></b><?php the_content('Подробнее &raquo;'); ?>
      <?php endwhile; endif; ?>

Собственно всё. На 2.7.1 работает, поэтому должно и у тебя заработать.

Огромное спасибо… всё заработало…

Обращайтесь :), рад помочь!

axeleus, поняла, что ваш код рабочий, а в какой файл темы и куда именно в файле вставить его нужно? Извините за глупые вопросы, изучаю вордпресс)

В данном примере код вставлен в single.php, вы не стесняйтесь спрашивайте что вас интересует.

В данном примере код вставлен в single.php, вы не стесняйтесь спрашивайте что вас интересует.

Тупо вставить в конце файла single.php перед оператором конца кода пхп?

Я пробую ваш код, так как хочу вывести при нажатии на рубрику только список постов без аннотаций, то есть только названия.

В идеале хочу реализовать вывод постов в каждой рубрике в виде таблицы, а напротив названия поста, чтобы выводились некоторые характеристики поста (они есть постоянно в постах)

Возможно такое?

Всё возможно, на WP можно сделать много. На выходных напишите мне на e-mail, если буду свободен подскажу предметно.

на сколько я помню то что в категории выводится так 
<?php print get_category_link(31); ?>

а в шаблоне файл arhive.php отвечает за вывод постов в категории

<?php if (have_posts()) : $post = $posts[0]; while (have_posts()) : the_post(); ?>
    <p><?php the_time('d M'); ?></p>
        <p><a href="<?php the_permalink(); ?>" rel="bookmark" title="Подробнее &raquo; <?php the_title(); ?>"><?php the_title(); ?></a></p>
        <?php the_content(); ?>
    <?php endwhile; ?>

рекомендую так же поставить плагин WP-Pagenavi скачать тут -> http://wordpress.org/extend/plugins/wp-pagenavi/
а в коде после <?php endwhile; ?> поставить

<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>

не забудьте что плагин должен быть активирован. В файле arhive.php убрать ненужное:

<?php next_posts_link(__('&laquo; Older Entries', 'kubrick')); ?>
<?php previous_posts_link(__('Newer Entries &raquo;', 'kubrick')); ?>

а у меня что то не получилось…
<?php print get_category_link(31); ?> просто выводит ссылку.

Мне тоже хотелось бы сделать так:
в сайдбаре список рубрик, заходишь в рубрику раскрывается список постов этой рубрики, заходишь в пост, этот список все также отрыт, заходишь в другую рубрику, для нее также раскрывается список постов, а старый список закрывается….

Погуглил что то похожее и почему то не нашёл, может плохо искал, ну да ладно. 
В общем для начала разберём работу php скрипта.

1. Выводим саму новость.
2. Выводим N-e количество последних записей и этой рубрики.
3. Нельзя допустить дублирования постов.

и так 1-й и 3-й пункт:
<?php if (have_posts()) : while (have_posts()) : the_post();
 $do_not_duplicate = $post->ID;?> //помещаем ID выводимого поста в переменную

//выводим саму новость
        <p><?php the_time('d M'); ?></p>
        <p><a href="<?php the_permalink(); ?>" rel="bookmark" title="Подробнее &raquo; <?php the_title(); ?>"><?php the_title(); ?></a></p>
        <?php the_content(); ?>
        <?php endwhile; ?>

я думаю под шаблон настроите вывод.

теперь 2-й пункт:

//получаем ID категории
<?php $category = get_the_category();
      $cat_name = $category[0]->cat_name;
      $cat_id = get_cat_ID($cat_name);
      //выполняем запрос в базу данных
          $my_query = new WP_Query('showposts=4&cat='.$cat_id.''); //здесь showposts=4 - количество выводимых ПОСЛЕДНИХ постов из рубрики cat='.$cat_id.'
      //выводим список новостей
          if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); 
      if( $post->ID == $do_not_duplicate ) continue; update_post_caches($posts); ?> //тут идёт проверка на дублирование поста
          //собственно вид вывода постов, настроите сами
      <h3><a href="<?php the_permalink(); ?>" rel="bookmark" title="Подробнее &raquo; <?php the_title(); ?>"><?php the_title(); ?></a></h3>
      <?php the_time('d M Y'); ?></b><?php the_content('Подробнее &raquo;'); ?>
      <?php endwhile; endif; ?>

Собственно всё. На 2.7.1 работает, поэтому должно и у тебя заработать.

вставив этот код в single.php, у меня выдается ошибка, ссылаясь на последнюю строчку в single.php

подскажите пожалуйста в чем проблема?

дело в том, что читая код, переводите на русский язык весь код в плане, если->то->делаю->вывожу, готовое решение я уже показал, это работает и на 2.92. Если вы не владеете PHP прочитайте азы, тогда всё будет понятно

//получаем ID категории
<?php $category = get_the_category();
      $cat_name = $category[0]->cat_name;
      $cat_id = get_cat_ID($cat_name);
      //выполняем запрос в базу данных
          $my_query = new WP_Query('showposts=4&cat='.$cat_id.''); //здесь showposts=4 - количество выводимых ПОСЛЕДНИХ постов из рубрики cat='.$cat_id.'
      //выводим список новостей
          if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); 
      if( $post->ID == $do_not_duplicate ) continue; update_post_caches($posts); ?> //тут идёт проверка на дублирование поста
          //собственно вид вывода постов, настроите сами
      <h3><a href="<?php the_permalink(); ?>" rel="bookmark" title="Подробнее &raquo; <?php the_title(); ?>"><?php the_title(); ?></a></h3>
      <?php the_time('d M Y'); ?></b><?php the_content('Подробнее &raquo;'); ?>
      <?php endwhile; endif; ?>

Собственно всё. На 2.7.1 работает, поэтому должно и у тебя заработать.

Темка старенькая, но мне как раз пришла впору, возник вопрос о том, как сделать проверку и выводить статьи одной рубрики по датам, т.е. сегодняв рубрикетакие-то статьи

Если выводить для конкретной рубрики используйте WP_Query смотреть тут http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters
А там как будет угодно, так и сортируйте.

Если я правильно понял и надо вывести посты только СЕГОДНЯШНЕГО дня
в кодексе даже такой пример есть

$today = getdate();
$query = new WP_Query( 'year=' . $today["year"] . '&monthnum=' . $today["mon"] . '&day=' . $today["mday"] );
Anonymous
Отправить
Ответ на: