php - 根据每个分类的多重评级获取帖子

标签 php mysql sql wordpress

我正在根据分类法设置帖子的评级,可以说,现在我想根据评级和分类法查询它们。
PC 上的应用程序评级为 10。(meta_key= rating_pc)
Android 上的应用的评级为 5。(meta_key= rating_android)

add_action( 'posts_where', 'minscoreaction' );
function minscoreaction( $sql ){

    global $wpdb;
    $minscore = 9;//get_query_var( 'minscore' );
    $platformslug = 'pc';//get_query_var( 'platformlist' );

    if( $minscore ){
        $sql .= $wpdb->prepare( " AND ( $wpdb->postmeta.meta_key LIKE %s AND $wpdb->postmeta.meta_value LIKE %s )", "rating_".$platformslug.'%',$minscore.'%');

问题:我什么也没得到...意味着没有帖子。实际上,有一篇帖子的 PC 评分为 9。


注意:由于多种原因,我只能使用此方法来查询Post。

另一个注意事项:

$where .= $wpdb->prepare( " AND $wpdb->posts.post_type LIKE %s ", 'reviews%' );

这将返回所有评论帖子类型

但这没有返回任何内容

$where .= $wpdb->prepare( " AND $wpdb->postmeta.meta_value LIKE %s ", '9%' );

Meta Value with 9

前端

print_r(query_posts('post_type=reviews&platformlist=pc&minscore=9'));

最佳答案

functions.php 或您想要使用的模板页面中使用它。

    function filter_where( $where = '' ) {
       global $wpdb;
        $minscore = 9;
        $platformslug = 'pc';    
        $posttype =     "reviews";

$where .= " AND ($wpdb->posts.post_type = '".$posttype."')";
$where .= " AND (($wpdb->postmeta.meta_key LIKE '_overall_rating_".$platformslug."%' AND $wpdb->postmeta.meta_value = '".$minscore."')) ";

       return $where;
    }
    add_filter('posts_where', 'filter_where');

或与WP_QUERY

前端上使用此代码。

$the_query = new WP_Query(array(
    'post_type' => $posttype ,
    'meta_query' => array(
        array('key' => '_overall_rating_' . $platformslug,
            'value' => $minscore)
    )
));
print_r($the_query);

关于php - 根据每个分类的多重评级获取帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30029302/

相关文章:

mysql - 我可以维护 INNER JOIN 的输出根据左侧表(第一个表)的顺序进行排序吗?

sql - 按空格分割字符串

sql - 组织在线类(class)数据库

php - 在已经建立的连接中使用 mysqli::prepare 使用prepare?

php - 如何制作一个只有 1 个索引的数组到顶层?

php - 解析2个表的数据

MySQL:如何按年和月做日期(无日期)

sql - Heroku Dataclips 上的 PostgreSQL 变量

php - 具有事件记录的 CodeIgniter COUNT?

PHP - 从模式到另一个模式搜索文件行并将它们放入数组