获取父类别中的唯一帖子

时间:2012-08-07 作者:advcha

我有一个父类别和几个子类别。我也有几个属于儿童类别的帖子。每个帖子可以分为几个类别。我想知道如何查询post表,这样当我想显示父类别中的所有帖子时,我将获得子类别下的所有帖子。结果必须是唯一的帖子。对不起,我的英语不好。

这是我的代码:

$cats = get_categories(\'child_of=95\'); 

// loop through the categries
foreach ( $cats as $cat ) {
    // setup the cateogory ID
    $cat_id = $cat->term_id;
    // Make a header for the cateogry
    //echo "<h2>".$cat->name."</h2>";
    // create a custom WordPress query
    query_posts("cat=$cat_id&post_per_page=100");
    // start the wordpress loop!
    if (have_posts()) : while (have_posts()) : the_post(); ?>

        <?php // create our link now that the post is setup ?>
        <h2><?php the_title(); ?></h2>
        <a href="<?php the_permalink();?>"><?php the_content(); ?></a>
        <?php echo \'<hr/>\'; ?>

    <?php endwhile; endif; // done our wordpress loop. Will start again for each category ?>
<?php } // done the foreach statement ?>
但我总是收到重复的帖子。

2 个回复
SO网友:woony

您可以使用google轻松找到解决方案。

--使用重复项的解决方案进行编辑--要过滤出重复项,请使用ID填充数组。然后检查帖子是否在数组中,如果没有打印,则跳过它。你说你有获取帖子的解决方案,所以我不会为此键入代码

<?php
$do_not_duplicate = array(); // set before loop variable as array

while ( have_posts() ) : the_post();
$do_not_duplicate[] = $post->ID; // remember ID\'s in loop

//now loop through the array
if ( !in_array( $post->ID, $do_not_duplicate ) ) { // check IDs
// display posts ...
the_title();
}


endwhile;
?>

SO网友:BODA82

WordPress循环应该能够轻松地为您处理这个问题(除非我不理解您的问题)。

是否使用循环和query_posts 或您自己的实例WP_Query, 只需传递适当的类别参数。

示例:

父类别(ID:1)

儿童类别1(ID:2)

儿童类别2(ID:3)

<?php 
$args = array (
  \'cat\' -> 1, // Category ID of Parent Category (in this case, 1)
  \'posts_per_page\' -> 10 // Show 10 posts from this category, set to -1 to show all
);
query_posts($args); 
if ( have_posts() ) : while ( have_posts() ) : the_post(); 
?>
  <!-- Do something -->
<?php endwhile; else: ?>
<p><?php _e(\'Sorry, no posts matched your criteria.\'); ?></p>
<?php endif; ?>

结束

相关推荐

是什么原因导致wp-Comments-post.php重定向到浏览器的IP地址?

我有一个WordPress副本正在运行,它最近已经从共享主机转移到我控制的VPS上。虽然同一站点的测试副本在同一实例的另一个vhost上、在同一IP地址上正确运行,但在我将公共站点移到另一个vhost上之后,注释表单开始将访问者重定向回自己的IP地址,并显示302 Found 代替成功的302 Moved Temporarily.运行WP 3.4.1,我尝试了:从仪表板重新安装WP,并检查所有插件都是最新的,停用所有插件并将主题设置为211,与工作测试安装不同,以检查它们是否是来自多个IP、计算机和浏览器