我创建了一个模板,我想在其中调用所有帖子类型,但只显示来自公共类别的帖子类型。我得到的结果都是普通的博客帖子,还有一些来自某个自定义帖子类型。我已经复查了多次,并且在测试页面上使用了正确的模板。我已经清除了缓存。
在该链接的测试页面上:https://moneysmartfamily.com/budgeting-category-test/ 您将看到一个博客帖子列表。我试图显示的类别是“预算”。每个帖子的类别位于元行的末尾。你会看到,不仅仅是“预算”在增加。如果你向下滚动到7月25日,你会看到没有提到类别的帖子。这些是来自CPT的。(我不明白为什么他们没有列出类别。但他们确实有。)
我的查询参数应该只列出所有帖子类型中的“预算”类别帖子,但我从常规帖子中获得显示的所有类别。如何确保在运行时只获取我想要查看的类别?
我在一个元框插件中创建了这些自定义帖子类型,每个CPT都有一个自定义分类法。我想知道是否需要以某种方式组合分类名称以确保它们被使用。有谁能指出其他地方是如何做到这一点的,这样我就可以弄清楚这一点?
这是我的模板代码,您可以看到我正在尝试做什么。
<?php
/**
* Template Name: Category - Budgeting
*
*
* The template for displaying all pages.
*
* This is the template that displays all pages by default.
* Please note that this is the WordPress construct of pages
* and that other \'pages\' on your WordPress site will use a
* different template.
*
* @package WordPress
* @subpackage Twenty_Twelve
* @since Twenty Twelve 1.0
*/
get_header();
$args = array(
\'category_name\' => array(
\'budget\'
), // category_name (string) – use category slug.
);
// This query should now only have the post_type in the args above that are in the category budget.
$this_query = new WP_Query( $args ); ?>
<div id="primary" class="site-content">
<div id="content" role="main">
<?php
if ( $this_query->have_posts() ) :
while ( $this_query->have_posts() ) : $this_query->the_post();
$post_id = get_the_ID(); // In case you need to use the post ID
?>
<?php if( has_post_thumbnail() ): ?>
<header class="entry-header">
<h1 class="entry-title">
<a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a>
</h1>
<span class="post-meta">Author <?php the_author_posts_link(); ?> | <?php the_time(\'F jS, Y\'); ?> | <?php the_category(\', \'); ?></span>
</header><!-- .entry-header -->
<div class="entry-summary">
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(\'thumbnail\', array(\'class\' => \'alignleft\')); ?></a><?php the_excerpt(); ?>
</div><!-- .entry-summary -->
<?php endif; ?>
<?php
endwhile;
wp_reset_postdata();
endif;
?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
更新:经过一些探索性的工作,弄清楚了如何进行多个税务查询并进行了多次尝试,我在args中尝试了此设置,但得到了空白内容。你是否有什么特别的地方可以解释为什么这不起作用?我现在正在学习查询,所以如果您能给我一些建议,我将不胜感激。谢谢
$args = array(
\'post_type\' => array(
\'post\',
\'media-appearance\',
\'members-archive\',
\'money-saving-tips\',
\'review\'
),
\'tax_query\' => array(
\'relation\' => \'AND\',
array(
\'taxonomy\' => \'post\',
\'terms\' => \'budget\',
\'field\' => \'slug\',
\'operator\' => \'IN\',
),
array(
\'taxonomy\' => \'money-savings-tips-categories\',
\'terms\' => \'budget\',
\'field\' => \'slug\',
\'operator\' => \'IN\',
),
array(
\'taxonomy\' => \'reviews-categories\',
\'terms\' => \'budget\',
\'field\' => \'slug\',
\'operator\' => \'IN\',
),
array(
\'taxonomy\' => \'media-appearance-categories\',
\'terms\' => \'budget\',
\'field\' => \'slug\',
\'operator\' => \'IN\',
),
array(
\'taxonomy\' => \'member-archives-categories\',
\'terms\' => \'budget\',
\'field\' => \'slug\',
\'operator\' => \'IN\',
),
),
);