Вывод постов определенной категории

Таким кодом выводятся последние 10 постов добавленных в блог:

        <?php while (have_posts()) : the_post(); ?>
                <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a><br>
        <?php endwhile; ?>

Как нужно написать чтобы вывести X постов из категории N ?

query_posts

Решил вопрос наполовину.
Нужно было добавить:

        <?php query_posts("cat=7"); ?>

Перед:

        <?php while (have_posts()) : the_post(); ?>
                <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a><br>
        <?php endwhile; ?>

Но я ещё вывожу позже новые посты из всех, а выводятся только посты из этой же категории 🙂 использую тот же самый цыкл. Предполагаю что сюда:

        <?php query_posts("cat=7"); ?>

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

Ну и загадку с количеством выводимых постов я не решил, как выводились так и выводятся 10 штук.

Итог:
1) Как изменить количество выводимых постов.
2) Как вывести последние посты из всех категорий (решил один вопрос, всплыл второй 🙂 )

query_posts

Ага я понял уже. А вот как теперь вывести дальше именно изо всех категорий последние посты 🙂 ?

Нашёл 🙂

<?php query_posts("cat=0"); ?>

Последний вопрос. Как же изменить количество выводимых постов 🙂 ?

Из остальных? query_posts("cat=-7"); и снова Цикл.

В Кодексе написано, какие параметры можно использовать http://codex.wordpress.org/Template_Tags/query_posts

Из остальных? query_posts("cat=-7"); и снова Цикл.

Из всех. Но буду теперь знать как "из всех кроме" 🙂

В Кодексе написано, какие параметры можно использовать http://codex.wordpress.org/Template_Tags/query_posts

Спасибо. Поискал и нашёл, нужно писать в аргументе функции

&posts_per_page=N

Продолжаются вопросы 🙂

Три раза делаю query_posts:

<?php query_posts("cat=7&posts_per_page=5"); ?>
..
<?php query_posts("cat=-7&posts_per_page=5"); ?>
..
<?php query_posts("cat=0"); ?>

В таком случае ссылки вида
http://домен/page/2
http://домен/page/3
и т.д. выдают контент такой же самый как и http://домен/
Как только убираю код который написал выше – всё начинает выводиться правильно. Как исправить мою ошибку ? Наверное это связанно именно со строкой

<?php query_posts("cat=0"); ?>

Подскажите пожалуйста 🙂 очень хочется разобраться с этим вопросом.

Ага. В Кодексе написано:
For example, to set the display order of the posts without affecting the rest of the query string, you could place the following before The Loop:
query_posts($query_string . "&order=ASC")

Вся соль в $query_string.

Если я правильно понял что ты хочешь сделать то я бы сделал так

<?php $the_query = new WP_Query('cat=10' .$catid. ',-' .$catid2. '&showposts=1&offset=0&orderby=post_date&order=desc');
            
                    while ($the_query->have_posts()) : $the_query->the_post();

                    $do_not_duplicate = $post->ID; ?>
                    
          
            
            
            <div class="entry" id="post<?php the_ID(); ?>">
                            <h2 class="entry-header"><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a>     </h2>                    </div>
                            
                            <div class="entry-body">
                            <?php the_content('Читать далее &raquo;'); ?>
                        </div>
            <?php endwhile; ?>

а далле цикл

artem_dc,
Если я правильно вас понял вы создаете экземпляр $the_query класса WP_Query и работаете именно с ним?
Если это так то мне это абсолютно подойдёт.

Сейчас буду пробовать. Но всё таки хочется услышать от вас комментарий (даже если у меня сейчас получится, хочется именно понять механизм который вы предлагаете).

Заранее спасибо.

Эх, еслиб я знал как это работает! 😀
Просто я реализовывал вывод последних постов с превьюшкой у себя на сайте http://www.pro-tuning.info/ ответов так и не нашёл, в конце концов разобрал крутой скин WP-Magazine Theme вроде, там был таким образом реализован Recent-posts. Вот. Минус конечно в том что пейджнави пахать при этом не будет.
Хоть подошёл мой способ?

Минус конечно в том что пейджнави пахать при этом не будет.

Вот вот. В посте #8 я как раз писал о проблеме что после вывода нескольких постов из указанной категории не работают URLы page/1 page/2 и т.д. Это как раз та самая проблема о которой вы пишите.

Хоть подошёл мой способ?

Увы пока что не нашёл решения. Временно убрал вывод анонсов постов из нужной мне категории (для того что бы корректно работал wp-pagenavi).

Если вдруг кто придумал как реализовать вывод последних N постов из определенной категории без конфликта с wp-pagenavi, сообщите пожалуйста 🙂

artem_dc, сейчас посмотрел ваш сайт.
Как же у вас работает вывод
"Последние тюнинга:"
"Последние концепты:"
"Автомобильные новости"
?

Это ведь именно то что я и хочу реализовать у себя. Как раз такой вот вывод последних новостей.

И pagenavi у вас тоже работает.

Как сделали так 🙂 ?

artem_dc, всё получилось. Использовал код из вашего поста #10 в этой теме.
Спасибо.

artem_dc, сейчас посмотрел ваш сайт.
Как же у вас работает вывод 
"Последние тюнинга:"
"Последние концепты:"
"Автомобильные новости"
?

Это ведь именно то что я и хочу реализовать у себя. Как раз такой вот вывод последних новостей.

И pagenavi у вас тоже работает.

Как сделали так :) ?

Буду посвободней всё объясню )) Ну в течении нескольких дней

artem_dc, сейчас посмотрел ваш сайт.
Как же у вас работает вывод 
"Последние тюнинга:"
"Последние концепты:"
"Автомобильные новости"
?

Это ведь именно то что я и хочу реализовать у себя. Как раз такой вот вывод последних новостей.

И pagenavi у вас тоже работает.

Как сделали так :) ?

Значит так,
1
"Последние тюнинга:"
"Последние концепты:"
реализованы очень просто и способ нашёл тут на форуме делается это так

<h4><?php _e('Последние тюнинга:'); ?></h4>

 <ul> <?php
$posts_new = get_posts('category=3&numberposts=20');
foreach ($posts_new as $post_new) :
    echo '<li class="news_item"><a href="'; 
    echo get_permalink($post_new->ID);
    echo '">';
    echo ' - ';
    echo $post_new->post_title;
    echo '</a></li>';
endforeach;    
?>
</ul>

ну я думаю понятно где и как поменять кол-во постов и рубрику

2

"Автомобильные новости"
реализованы так как я уже писал выше в #10 ответе,
А главный цикл реализован обычно, просто из определённых рубрик поэтому и пейджнави работает.

<div id="contents">
<div class="blog">

<?php query_posts($query_string.'&cat=3,5,6,9'); ?>

<?php if (have_posts()) :  while (have_posts()) : the_post(); ?>
    <div class="entry" id="post<?php the_ID(); ?>">
        
        <h2 class="entry-header"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
        <div class="contents_body">
         <div class="entry-body">
             <?php the_content('Читать далее &raquo;'); ?>
         </div>
         <p class="entry-footer">Размещено в категории: <?php the_category(', ') ?> | <?php comments_popup_link('Нет коментариев', '1 Коментерий', '% Коментария(ев)'); ?></p>
        </div>
    </div>

Если интересует, как реализован вывод картинок в "Автомобильные новости" то это сделано так- плагин Post Avatar

Здравствуйте, может подскажет кто. Есть у меня в сайдбаре категории (первого уровня), к каждой такой идет две "подкатегории", надо при нажатии на категории в сайдбаре, чтобы на странице были подкатегории, это я сделал кодом нижу. А когда уже проходишь по "подкатегориям, то видно список статей".
Не подскажите как сделать такое?

Слева страницы сайдбар, в нем вывожу через меню "главные подкатегории", далее в файле category.php я вывожу подкатегории категорий!

http://fotohost.jampo.com.ua/v.php?id=3fe66e4490285ed535b5906cde74aa0c.png

<?php if (is_category()) : { $this_category = get_category($cat); } ?>
<?php
if($this_category->category_parent)
$this_category = wp_list_categories('orderby=id&show_count=0&title_li=&use_desc_for_title=1&child_of='.$this_category->category_parent."&echo=0"); else
$this_category = wp_list_categories('orderby=id&show_count=0&title_li=&use_desc_for_title=1&child_of='.$this_category->cat_ID."&echo=0");
if ($this_category) { ?>
<ul><?php echo $this_category; ?></ul>
<?php } ?> 
<?php
if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0&exclude=10");
if ($children) { ?>
<ol><?php echo $children; ?></ol>
<?php } ?>

И вот вопрос, как сделать так, чтобы при переходе уже по "подкатегориям" был список постов, выдает 404 ошибку!

http://fotohost.jampo.com.ua/v.php?id=c0b14a8d15d9d7a86bf72065a883510b.png

Спасибо!

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