get_posts и the_category

у меня есть такой луп:

<?php $posts_new = get_posts(‘numberposts=100&meta_key=первый&meta_value=true&meta_key=второй&meta_value=true’); foreach ($posts_new as $post_new) : ?>
<?php the_category(); ?>
<a href="<?php echo get_permalink($post_new->ID); ?>" class="colorred"><?php echo $post_new->post_title; ?></a>
<?php endforeach; ?>

вот <?php the_category(); ?> не работает — выводит везде одну рубрику (самого нового поста в этом списке).
Я понимаю что просто the_category(); в таком лупе не сработает, но как переделать — не знаю 🙁
Пробовала <?php get_the_category($post_new->cat_ID); ?> — фокус не удался…

Помогите кто чем может?

Sonika, 2 варианта на выбор:

<?php query_posts('showposts=10'); ?>
<?php if (have_posts()) : ?>    
    <?php while (have_posts()) : the_post(); ?>
        <strong><?php $cat = get_the_category(); $cat = $cat[0]; echo $cat->cat_name; ?></strong>
        <a href="<?php the_ID(); ?>" class="colorred"> <?php the_title(); ?> </a><br />
<?php endwhile; ?>
<?php endif; ?>

и

<?php $posts_new = get_posts('numberposts=10'); 
foreach ($posts_new as $post_new) :  
    setup_postdata($post_new); ?>
    <strong><?php $cat = get_the_category(); $cat = $cat[0]; echo $cat->cat_name; ?></strong>
    <a href="<?php echo get_permalink($post_new->ID); ?>" class="colorred"><?php echo $post_new->post_title; ?></a>
<?php endforeach; ?>

не, один фиг <?php $cat = get_the_category(); $cat = $cat[0]; echo $cat->cat_name; ?> выводит одну категорию везде…
думаю, легче через произвольные поля, жаль что для того, чтобы обернуть название категории в ссылку на это категорию прийдется попотеть… короче, все равно корявый способ 🙁

так, что я намудрил.
когда проверял – оба кода работали, сейчас только первый..
скопировал что ли не все..
проверю еще.

не знаю где я намудрил – но вот этот код работает 100%, разве что категории являются ссылками.

<?php $pageposts = get_posts('numberposts=10'); ?>
<?php if ($pageposts): ?>
 <?php foreach ($pageposts as $post): ?>
 <?php setup_postdata($post); ?>
    <?php the_category(', ') ?>
    <a href="<?php echo get_permalink($post->ID); ?>" class="colorred"><?php echo $post->post_title; ?></a><br />
 <?php endforeach; ?>
 <?php endif; ?>

вот окончательный вариант:

<?php $posts_new = get_posts('numberposts=10'); 
foreach ($posts_new as $post) :  
    setup_postdata($post); ?>
    <strong><?php $cat = get_the_category(); $cat = $cat[0]; echo $cat->cat_name; ?></strong>
    <a href="<?php echo get_permalink($post->ID); ?>" class="colorred"><?php echo $post->post_title; ?></a><br />
<?php endforeach; ?>

опытным путем выяснилось, что надо ставить as $post и использовать $post вместо $post_new

Я так понял, стояла задача вывести последние записи с указанием рубрики?
Странно, последний код работает так, если просто добавлять в файл (например, sidebar.php), но не работает, если выводить через PHP-виджет – оастются названия одной и той же рубрики.
Но у меня чуть другая задача.

Есть ли виджет или код с помощью которого можно было бы вывести последние статьи именно той рубрики, на которой мы сейчас находимося в сайдбаре? По идее задача-то примитивная должна быть и очень широко распространённая, но решения я не нашёл, кроме как в плагине Каталога статей, но выдрать оттуда эту функцию у меня не хватает знаний, а использовать его для одной этой функции – жестоко издеваться над пользователями.

Кто-нибудь может помочь? Хоть ссылочкой. ) Чувствую, что должно быть просто, но информации знаний категорически нехватает. А изучать ПХП с гуманитарынм мозгом дело практически безнадёжное – пробовал. )

да, забыл уточнить, что Category Posts Widget несколько не то – он даёт возможность вывода последних постов только одной рубрики, а нужно, чтобы рубрика менялась в зависимости от того, где посетитель находится
К тому же с 2.7 этот плагин как-то странно работает. То есть, не работает совсем. Даже изменений не сохраняет. (

Что, без вариантов?

посмотри здесь http://dimox.name/articles-internal-linking-for-wordpress/

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