通过另一个表值设置WP_QUERY‘ORDER’选项

时间:2020-03-31 作者:Cavid Muradov

我在wordpress中创建了like系统。我创建了“sayim\\u beyenme”表,并创建了“say\\u post\\u id”和“total\\u post\\u likes”数据。现在我想按每个帖子的总赞数显示我的帖子。我用array\\u map获取帖子ID,但我不知道如何按total\\u post\\u like值排序这些帖子。对于测试,我使用了“标题”,这是我的代码:

<?php

                $results = $db->prepare("SELECT say_post_id FROM sayim_beyenme ORDER BY total_post_likes DESC LIMIT 3");
                $results->execute();
                $results = $results->fetchAll();
                $like_posts = array_map(function(&$r) { return $r[\'say_post_id\']; }, $results);

                if($like_posts) {

                    $postlar = new WP_Query(array(
                        \'paged\' => get_query_var(\'paged\', 1),
                        \'post_type\' => array(\'post\'),
                        \'posts_per_page\' => 9,
                        \'post__in\'      => $like_posts,
                        \'orderby\' => \'title\',
                        \'order\' => \'ASC\',
                    ));

2 个回复
最合适的回答,由SO网友:Cavid Muradov 整理而成

我找到了答案,添加了“orderby”=>“post\\uu in”

SO网友:Tom J Nowell

您不能直接这样做,相反,您需要自己解决这个问题,然后手动提供排序顺序WP_Query 并指定post__in 作为orderby 价值

相关推荐

当我使用WP_QUERY时,默认查询会发生什么情况?

我正在根据Underscores. 在我的archive.php 我想让循环中的第一篇帖子的风格与其他帖子不同,所以我正在运行一篇WP_Query 获取第一篇帖子,另一篇获取其余帖子。我想知道的是,由于我自己处理查询,WordPress隐式运行的默认查询(即我通常使用的查询)会发生什么情况while ( havePosts() )? 显然,出于性能方面的原因,我不想运行任何不必要的查询,那么有什么方法可以阻止它吗?我对pre_get_posts hook,但我不确定我将如何使用它,因为正如我所提到的,我不