WordPress主题中存在多个循环的问题

时间:2014-02-24 作者:Hussein Ojaghi

我正在使用这样的多个循环

            <?php
$posts = get_posts(\'numberposts=1&order=DESC&orderby=post_date&category=\'.get_cat_ID( \'سیاست\' ));


foreach ($posts as $post) : start_wp(); ?>
<?php 
    if ( has_post_thumbnail() ) {
    the_post_thumbnail();
    }

    ?>


                <div class="content">
                              <h2><a href="<?php the_permalink()?>"><?php the_title()?></a></h2>
                    <p><?php the_excerpt(); ?></p>
                    <hr/>
                    <?php   
endforeach;
?>
在我的大部分主题中,如侧边栏、页脚、不同类别的幻灯片,我所面临的问题是,当我在存档中使用以下循环时。php或类别。php根据类别显示帖子数据(如标题、摘录和功能图片),但它没有显示任何内容。当我删除所有上述循环时,它就工作了。这是我的存档或类别中的循环。php显示文章摘录和标题:

<?php if(have_posts()):?>
        <?php while ( have_posts() ) : the_post(); ?>  
                <?Php the_title(); ?><br/>
        <?php endwhile; ?>
        <?php endif;?>
我记得有一次我遇到了这个问题,通过使用wp_reset_query 每次循环后,但现在不起作用。大概wp_reset_query 不适用于foreach循环。

1 个回复
SO网友:Chip Bennett

使用示例代码设置辅助查询的正确方法。而不是这样:

$posts = get_posts(\'numberposts=1&order=DESC&orderby=post_date&category=\'.get_cat_ID( \'سیاست\' ));
执行以下操作:

// Query args
$custom_cat_args = array(
    \'posts_per_page\' => 1,
    \'order\' => \'DESC\',
    \'orderby\' => \'post_date\',
    \'cat\' => get_cat_ID( \'سیاست\' )
);
// Instantiate query
$custom_cat_query = new WP_Query( $custom_cat_args );
// Instantiate loop
if ( $custom_cat_query->have_posts() ) : while ( $custom_cat_query->have_posts() ) : $custom_cat_query->the_post();
    // Normal loop markup here
// Close loop
endwhile; endif;
// Restore $post global
wp_reset_postdata();
使用此方法,自定义查询将很好地与主循环查询和任何其他辅助查询配合使用。

结束

相关推荐

是否使用wp_LIST_CATEGORIES在INCLUDE参数中包含名称或插件?

我在本地和远程工作,通过git推送代码。我在下面设置了当前代码,它查找标记并使用wp_list_categories. 我需要使用include 参数,因为没有带标记的层次结构(在此实例中我不能使用类别)。然而,由于我在本地和远程工作,从本地到远程的ID可能会不一样。因此,理想情况下,我想包括name 或slug, 但我知道include 参数仅允许ID。有没有办法包括name 或slug 在include 参数想法:我的朋友说我们可以有一个名字列表,然后循环遍历所有名字,然后使用get\\u term\