仅在一个部分中运行wordpress查询

时间:2014-12-23 21:30:28

标签: php wordpress

我目前有一个设置,我按顺序调用了以下文件。

在我的header.php中,我正在呼叫<?php get_theme_part( 'front', 'current-front' ); ?>

该文件的内容为

<?php query_posts("showposts=1&cat=6"); ?>

<?php
/**
 * The template for displaying list of recent posts on the front page.
 *
 * @package WordPress
 * @subpackage xxx
 * @since xxx 1.0
 */
if ( !have_posts() ) 
    return;
?>

<div class="front-current-print">
        <div class="current-print">
            <?php while ( have_posts() ) : the_post(); ?>
                <?php get_theme_part( 'current-print' ); ?>
            <?php endwhile; ?>
        </div>
</div>

该文件正在调用current-print.php,其中包含以下代码:

<?php
?><article <?php post_class( 'compact bg-secondary' ); ?>>
    <a href="<?php the_permalink() ?>"><?php the_post_thumbnail( 'current-print' ); ?></a>
    <h5 class="title">
        <a class="inverse" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    </h5>
    <div class="entry-summary"><?php the_excerpt(); ?></div>
    <?php the_post_episode(); ?>
</article>

此代码允许我为特定类别的特定帖子设置缩略图。

这在首页上运行良好,但似乎对于所有内页和帖子,它只会显示类别和帖子。我试过取出<?php query_posts("showposts=1&cat=6"); ?>,帖子很好。有没有办法让我只能在标题中运行该脚本而不影响网站的其余部分?

1 个答案:

答案 0 :(得分:1)

您需要使用wp_reset_query();

  

wp_reset_query()将$ wp_query和全局发布数据恢复到原始主查询。如果必须使用该函数,则应在query_posts()之后调用此函数。

请参阅:http://codex.wordpress.org/Function_Reference/wp_reset_query

在你的情况下,这将是:

<?php query_posts("showposts=1&cat=6"); ?>

<?php
/**
 * The template for displaying list of recent posts on the front page.
 *
 * @package WordPress
 * @subpackage xxx
 * @since xxx 1.0
 */
if ( !have_posts() ) 
    return;
?>

<div class="front-current-print">
        <div class="current-print">
            <?php while ( have_posts() ) : the_post(); ?>
                <?php get_theme_part( 'current-print' ); ?>
            <?php endwhile; ?>
        </div>
</div>

<?php wp_reset_query(); ?>