当分类名称未知时,显示属于特定术语的帖子列表

时间:2015-12-30 09:59:43

标签: wordpress custom-taxonomy

如何显示属于特定字词的帖子列表?我有一个特定的用例,我不知道该术语所属的分类法。

如果我知道分类法,我会使用get_posts()函数的tax_query参数。

因此,我试图通过执行基于this WPSE question的数据库查询从术语名称中找到分类名称。但是,我需要term_taxonomy_id来实现这个目标。我只知道这个词的名称。

所以,我尝试使用术语名称找到term_taxonomy_id。为实现这一目标,我遇到了get_term_by()函数。不幸的是,这个函数需要分类法的名称才能工作。这让我回到了我开始的地步。

当分类名称未知时,显示属于特定术语的帖子列表的主要问题仍未解决。我正在寻找这个方向的指针。

1 个答案:

答案 0 :(得分:1)

保存期限ID而不是名称。并非用户需要选择它们,但对于所选的任何名称,将其 ID 保存为对代码有意义的信息。

由于最近的WP版本不再使用共享术语混淆,因此使用它应该是完全足够的:

$term = get_term_by( 'slug', 'aciform', 'category' );
$id   = $term->term_id;

// now let's do this backwards from ID alone
$term = get_term( $id ); // WP_Term... taxonomy argument optional!

// and query posts using term object
$posts = get_posts( [
    'tax_query' => [
        [
            'field'    => 'term_id',
            'terms'    => $term->term_id,
            'taxonomy' => $term->taxonomy,
        ]
    ],
] ); // array(1)