Я хотел бы иметь возможность показывать прикрепленные сообщения в верхней части страниц категорий. Я использую archive.php для своей страницы категории.
Я использую приведенный ниже код для отображения прикрепленных сообщений в верхней части страницы архива моей категории, за которыми следуют остальные сообщения в этой категории.
Это работает нормально, пока в категории не останется прикрепленных сообщений для отображения, а затем он дублирует список сообщений.
<?php
// get the current category
$category = get_the_category();
// get the sticky post in the category, order by title - ascending
query_posts(array( 'post__in' => get_option('sticky_posts'), 'orderby' => 'title', 'post_date' => 'DESC' , 'cat' => ''.$category[0]->cat_ID.'' ));
?>
<?php if (have_posts()) : ?>
<?php
if ($cat)
{echo "<h2>Articles in " . get_the_category_by_ID($cat) . "</h2>";}
?>
<ul id="archive-list">
<?php while (have_posts()) : the_post(); ?>
<li class="sticky"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <span>Updated on <?php the_modified_date(); ?> at <?php the_modified_time() ?></span></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php
// get the sticky post in the category, order by title - ascending
query_posts(array( 'post__not_in' => get_option('sticky_posts'), 'orderby' => 'title', 'post_date' => 'DESC' , 'cat' => ''.$category[0]->cat_ID.'' ) );
?>
<?php if (have_posts()) : ?>
<ul id="archive-list">
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <span>Updated on <?php the_modified_date(); ?> at <?php the_modified_time() ?></span></li>
<?php endwhile; ?>
</ul>
<?php if(function_exists('wp_page_numbers')) { wp_page_numbers(); } ?>
<?php else : ?>
<h1 class="center">Sorry, no articles have been published in the <?php if ($cat) {echo "" . get_the_category_by_ID($cat) . "";} ?> category.</h1>
<?php include (TEMPLATEPATH . '/searchform.php'); ?>
<?php endif; ?>
Любая помощь будет принята с благодарностью! Спасибо.
муравей нумерация страниц? как здесь интегрировать paginate_links()?
Спасибо за ваш ответ, но я не совсем уверен, где wp_reset_query() должен находиться в моем коде. У меня есть два экземпляра query_posts(); после чего он идет, и нужно ли ему идти внутри своих собственных тегов <?php?
Она идет после конца цикла
have_posts()
endif;
— и да, поскольку это функция PHP, она должна выполняться внутри тегов PHP. 🙂Спасибо за помощь (и пациентам!) @toscho. Я добавил после для каждого цикла, но это не имеет никакого эффекта.
попробуйте использовать условный оператор для переноса первого цикла, например:
добавить соответствующий
endif;
послеendif;
первого цикла.Использовать
wp_reset_query()
послеquery_posts()
. У нас много постов на эту тему. 😉