在我的Wordpress页面上,我想实现以下目标:
<小时/> {TITLE OF PAGE}
{MY PAGE CONTENT}
我为信用卡图标创建了一个帖子格式图片,并对该帖子的内容进行了wp查询。但是一旦这个查询出现在循环中,它就会永远循环... 和它永远不会发布我的页面内容...输出看起来像下面的例子。我怎么告诉WP我只想让那一排图标出现一次然后回到我的页面并发布内容?
<小时/> {我的页面标题}
{图标标题}
{图标标题}
{图标标题}
等等等 <小时/> 然而,我的wp_query进入循环,这导致图像首先出现,然后是帖子标题的无限循环,然后是图像。
我的代码是:
<?php
// Start the loop.
while ( have_posts() ) : the_post();
?>
<!-- The following is included using get_template_part
But am copying the code here for ease of reading -->
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<header class="entry-header"><h1><?php the_title(); ?></h1>
<!-- Start WP Query for credit card images -->
<?php
$temp = $wp_query; $wp_query= null;
$wp_query = new WP_Query(); $wp_query->query("category_name=credit-cards-accepted");
while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<div class="credit-cards"><?php the_content(); ?></div>
<?php endwhile; ?>
<!-- End WP Query for credit card images -->
</header><!-- .entry-header -->
<div class="entry-content">
<?php the_content(); ?>
</div><!-- .entry-content -->
</article><!-- #post-## -->
<!-- Get template part ends -->
<!-- The remainder of the page.php template continues from here -->
答案 0 :(得分:0)
您必须在自定义查询和内循环后恢复原始发布数据:
/* restore original post data after endwhile; */
wp_reset_postdata();
的更多信息
编辑:
您可能也在某处覆盖了$ wp_query global,因为您将其设置为$temp
。同时致电wp_reset_query()
将$wp_query
和全球发布数据恢复为原始主查询。
答案 1 :(得分:0)
我建议您以不同的方式命名新查询,因此它不会干扰主循环。尝试命名$ loop2或类似的东西。
另外,请注意,通过调用循环的方式,您可以将其添加到常规页面循环中显示的每个帖子/文章中(如果您在那里显示多个帖子)。
如果你想让它显示如下:
您需要在主循环之前调用它(否则会在另一个之后调用一篇文章/帖子并在那里输入您的图像行) 试试吧:
<?php
$loop2 = new WP_Query( array ('category_name'=> 'credit-cards-accepted' ));
while ($loop2->have_posts()) : $loop2->the_post();
?>
<div class="credit-cards">
<?php the_content(); ?>
</div>
<?php
endwhile; // end of the credit cards accepted loop.
?>
// Start the page loop.
while ( have_posts() ) : the_post();
?>