我用this solution, 但是,我想过滤更多内容,只显示与主帖子类别匹配的自定义帖子类型中的帖子(或者更准确地说是slug,但解决方案没有区别)。
我使用以下方法获得主帖子的slug:
$category_main = get_the_category();
$cat_slug = $category_main[0]->slug;
echo $cat_slug; // This is just to see if I got the right output
我以同样的方式从自定义post类型中获取slug,但它在一个循环中,循环通过自定义post类型。
$category_course = get_the_category();
$cat_slug_course = $category_course[0]->slug;
echo $cat_slug_course;
所以,我现在想要的是,只显示自定义类型中与原始帖子的slug匹配的帖子。
在伪代码中,这类似于:
If $cat_slug_course is equal to $cat_slug, display all custom type posts with slug $cat_slug_course and none other
这是用于显示自定义类型帖子的循环。
$args = array( \'post_type\' => \'Course\', \'posts_per_page\' => 2 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$category_course = get_the_category();
$cat_slug_course = $category_course[0]->slug;
echo $cat_slug_course; // This is just to see if I got the right output
echo \'<br />\';
the_title();
echo \'<div class="entry-content">\';
the_content();
echo \'</div>\';
endwhile; ?>
最合适的回答,由SO网友:s_ha_dum 整理而成
比您自己找到的更好的解决方案是,首先只检索匹配的帖子。实际上,您可能检索到错误的数据。对于您的代码(您的解决方案),如果结果集中的两篇文章不匹配,会发生什么情况?您根本没有得到任何输出。
您的描述/代码有点脱节,所以我有点猜测,这是未经测试的,但我认为您想要的是:
$category_main = get_the_category();
$cat_slug = $category_main[0]->slug;
// echo $cat_slug; // This is just to see if I got the right output
$args = array(
\'post_type\' => \'Course\',
\'posts_per_page\' => 2,
\'category_name\' => $cat_slug,
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) {
$loop->the_post();
$category_course = get_the_category();
$cat_slug_course = $category_course[0]->slug;
// echo $cat_slug_course; // This is just to see if I got the right output
echo \'<br />\';
the_title();
echo \'<div class="entry-content">\';
the_content();
echo \'</div>\';
}