gpt4 book ai didi

WordPress 元查询

转载 作者:行者123 更新时间:2023-12-02 22:46:19 29 4
gpt4 key购买 nike

我创建了一个主题,其自定义帖子类型为报告。我安装了一个与此帖子类型交互的评级插件,允许用户对报告进行评级。它将帖子评分存储在两个字段中:sumcount,其中 sum 是所有评分的总和,count 是单个评分的数量。

示例:如果 5 个人对某个帖子的评分为 1、2、3、4 和 5,则 sum 将为 15count 将是 5

当用户访问报告存档页面时,他们会看到报告帖子类型的所有帖子的列表。但是,我想添加一个查询参数来过滤平均评分为 4 或更高的帖子。我目前正在尝试使用 pre_get_posts Hook ,如下所示:

add_filter( 'pre_get_posts', 'filterReports' );

function filterReports( $query ) {
if( is_post_type_archive( 'reports' ) && $_GET['top'] ) {
global $wpdb;
$query = $wpdb->prepare(
"SELECT *
FROM
wp_postmeta AS sum
wp_postmeta AS count
WHERE
sum.meta_key = 'sum' AND
count.meta_key = 'count' AND
sum.meta_value / count.meta_value >= 4"
);
}
}

我不完全确定如何在上面构建我的自定义查询。任何建议将不胜感激。

最佳答案

使用下面的代码将根据您的情况工作。

add_filter( 'pre_get_posts', 'filterReports' );

function filterReports( $query ) {
if( is_post_type_archive( 'reports' ) && $_GET['top'] ) {
$reports_meta_query = $query->get('meta_query');

//Add our meta query to the original meta queries
$reports_meta_query[] = array(
'key'=>'count',
'value'=> 4,
'compare'=>'>=',
);
$query->set('meta_query',$reports_meta_query);
// somehow construct a query that checks if sum / count >= 4
}
}

关于WordPress 元查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59538099/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com