结合WordPress中的自定义帖子类型按元值排序

时间:2018-11-22 08:17:51

标签: php wordpress woocommerce

我在WordPress中创建了自定义帖子类型,以记录某些数据,例如woocommerce的产品ID 和一些个人用户输入的信息,这些信息已正确地列在 wp列表表中,现在我正在尝试按产品名称进行排序,但是我只有产品ID ,(在列表中,我使用woocommerce本机功能获取了产品名称),按产品代码使用以下代码正常工作

add_filter('parse_query', array($this, 'parse_query'));
        public function parse_query($query) {
                    global $pagenow;
                    if (!is_admin())
                        return;

                    $orderby = $query->get('orderby');
                    if (isset($_GET['post_type'])) {
                        $type = $_GET['post_type'];
                        //frontendtestwp is a custom cpt of wordpress
                        if ('frontendtestwp' == $type && is_admin() && $pagenow == 'edit.php') {
                            // for orderby just order based on product id

                            $query->set('meta_key', 'frontend_pid'); //contain product id
                            $query->set('orderby', 'meta_value_num');
                        }
                    }
         }

现在,如果我想根据产品名称进行排序,我有两个选择:一种是另外在我这边记录产品名称 我不想这样做,如果对原始产品名称进行了任何更新,则排序结果将基于旧数据 )。

第二个选项正在使用 posts_where 过滤器(目前正在尝试此选项),因为我的想法是检查产品(woocommerce)自定义帖子类型另外还带有 product_id =我的元值按产品标题定购

posts_where过滤器中,我还添加了以下代码以检入产品,但是我陷入了(id of product==my_meta_value_product_id)的状态检查中

$where .= " AND `post_type`='product'";

最初,我想使用内部联接,但这不是必需的,因为所有自定义帖子类型都在一个表中,我要检查的唯一事情是根据我的元产品ID按产品标题排序。

有什么办法可以利用我现有的数据(产品ID)达到我想要的结果?

0 个答案:

没有答案