当前位置: 首页 > 知识库问答 >
问题:

如何过滤有两个分类法条件的wordpress select查询?

吕宇定
2023-03-14

我想根据两个分类法条件从wordpress数据库中选择记录。我有下面的查询。但是它列出了所有的记录。我想用分类法、配方-类别和术语90过滤下面的查询。我怎么做?

选择DISTINCT p.id,p.post_author,p.post_date作为dte,wt.term_id from wp_posts p left JOIN wp_post_meta m1 ON p.id=m1.post_id left JOIN wp_term_relationships wtr ON(p.id=wtr.object_id)left JOIN wp_term_taxonomy wtt ON(wtr.term_taxonomy_id=wtt.term_taxonomy_id)left JOIN wp_term_taxonomy_id)left JOIN

共有1个答案

严宇
2023-03-14

为什么不使用WP_QUERY获取与分类法(Recipe-Category)和Recipe-Categoryid90术语相关的帖子呢

$taxonomy       = 'recipe-category';
$taxonomy_terms = 90;
$args           = array(
    'tax_query' => array(
        array(
            'taxonomy' => $taxonomy,
            'field'    => 'id',
            'terms'    => $taxonomy_terms,
        ),
    ),
);
$posts_related_to_taxonomy      = new WP_Query($args);
if( $posts_related_to_taxonomy->have_posts() ) :
    echo '<p>';
    while($posts_related_to_taxonomy->have_posts()) : $posts_related_to_taxonomy->the_post();
        ?>
        <a href="<?php the_permalink(); ?>">
            <span><?php the_title(); ?></span> : <?php echo get_the_excerpt(); ?>
        </a>
        <br>
    <?php endwhile;
    echo '</p>';
else :
    echo wpautop('No Records found');
endif;

如果要在两个分类法之间进行搜索,请将tax_query参数替换为以下内容

'terms'=>array($term)此参数可与术语ID或字符串数组一起使用,将taxonomy1taxonomy2替换为其他分类框

'tax_query' => array(
        'relation' => 'AND',
        array(
            'taxonomy' => 'taxonomy1',
            'field' => 'id',
            'terms' => array( $term) 
        ),
        array(
            'taxonomy' => 'taxonomy2',
            'field' => 'id',
            'terms' => array( $term2),
        )),
 类似资料:
  • 问题内容: 我想像这样做一个ElasticSearch查询: 我试图像这样在NEST中实现它: 但这给了我这样的查询,其中的过滤器包装在 布尔值中 : 我应该如何更改我的NEST代码以提供正确的查询?是否必须将我的条款添加到 QueryContainer之外的 其他项目中? 问题答案: 如果要检查条件过滤器,可以在查询之前创建过滤器列表,如下所示: 如果在进行过滤器查询之前不需要检查任何条件,则可

  • 我在Wordpress中有作为CPT的产品,并尝试使用复选框根据分类法筛选帖子。我有两种分类法,品牌和尺寸。它们在索引中是这样输出的。php文件: 在我的functions.php文件中,我有以下内容来构建WP_query并包括分类法: 这是scripts.js中的AJAX/jQuery: 我得到的是一个半工作结果,其中为所有可用品牌和尺寸创建了复选框,并且可以进行过滤。问题是,如果检查了XL码和

  • 问题内容: 我有一个像这样的数组: 现在,我想按某种条件过滤该数组,只保留值等于2的元素,并删除值不等于2的所有元素。 所以我的预期结果数组将是: 注意:我想保留原始数组中的键。 如何使用PHP做到这一点?有内置功能吗? 问题答案:

  • 问题内容: 我正在尝试使用Pandas在几个条件下进行布尔索引。我原来的DataFrame称为。如果执行以下操作,将得到预期的结果: 但是,如果我这样做(我认为应该是等效的),则不会返回任何行: 知道导致差异的原因是什么? 问题答案: 使用是因为运算符优先级: 或者,在单独的行上创建条件: 样品 :

  • 问题内容: 我如何结合这两个更新语句: 问题答案: 您可以使用CASE表达式,如下所示:

  • 问题内容: 系列中的下一个’‘ This query is quite slow when the timestamps are chosen such that many rows are matched: 我相信这是因为我在两个字段(DeviceId和StartedAt)上混合了范围条件。 如果是这样,我该怎么办才能解决问题?也许有什么 触发索引合并的使用? 问题答案: 在=“范围”和“范围”