繁体   English   中英

wordpress中的get_posts或WP_query函数中的orderby和order过滤器不起作用

[英]orderby and order filter in get_posts or WP_query function in wordpress not working

我在wordpress插件中具有使用get_posts($ array)查询帖子的功能。 但是我想让它以DESCENDING顺序对posts表的post_modified字段进行orderby,为此,我在下面有以下代码:

     $arrPostDtls = get_posts(array(
            'post_type' => 'kiaarticles',
            'posts_per_page' => -1, 
            'post_status' => array('publish', 'pending', 'trash','draft','auto-draft') ,
'orderby' => 'post_modified',
'order'  => 'DESC',
            'tax_query' => array(
                'relation' => 'AND',
                array(
                    'taxonomy' => 'products',
                    'field' => 'slug',
                    'terms' => $arrTermSlug,
                    'operator' => 'IN'
                ),
                array(
                    'taxonomy' => 'kiacategory',
                    'field' => 'slug',
                    'terms' => $arrCTermSlug,
                    'operator' => 'IN'
                )
            )     
            ));

在这里,我确实实现了orderby或order子句以对其进行相应的排序,但是它不起作用。 请根据我的意愿建议或帮助我进行排序。

更新为了以其他方式获取信息,我使用了WP_query方法获取帖子。 为此,我实现了以下代码:

$arrPostDtls = new WP_query(array(
        'post_type' => 'kiaarticles',
        'posts_per_page' => -1, //unlikely high
        'post_status' => array('publish', 'pending', 'trash','draft','auto-draft'),
        'orderby' => 'modified',
        'tax_query' => array(
            'relation' => 'AND',
            array(
                'taxonomy' => 'products',
                'field' => 'slug',
                'terms' => $arrTermSlug,
                'operator' => 'IN'
            ),
            array(
                'taxonomy' => 'kiacategory',
                'field' => 'slug',
                'terms' => $arrCTermSlug,
                'operator' => 'IN'
            )
        )
        ));

从中我收到了还包含SQL查询的结果,并在PHPmyadmin中执行SQL查询,我发现了预期的结果,但是当我迭代“ $ arrPostDtls-> posts”时,它仍然给了我旧的结果。在这里建议出什么问题了。

尝试

 get_posts(array(
        'post_type' => 'kiaarticles',
        'posts_per_page' => -1, 
        'post_status' => array('publish', 'pending', 
        'trash','draft','auto-draft') ,
        'orderby' => array('post_modified' => 'DESC'),
        'tax_query' => array(
            'relation' => 'AND',
            array(
                'taxonomy' => 'products',
                'field' => 'slug',
                'terms' => $arrTermSlug,
                'operator' => 'IN'
            ),
            array(
                'taxonomy' => 'kiacategory',
                'field' => 'slug',
                'terms' => $arrCTermSlug,
                'operator' => 'IN'
            )
        )     
        ));

更新问题后更新

$arrPostDtls = new WP_query(array(
        'post_type' => 'kiaarticles',
        'posts_per_page' => -1, //unlikely high
        'post_status' => array('publish', 'pending', 'trash','draft','auto-draft'),
        'orderby' => array('modified' => 'DESC'),
        'tax_query' => array(
            'relation' => 'AND',
            array(
                'taxonomy' => 'products',
                'field' => 'slug',
                'terms' => $arrTermSlug,
                'operator' => 'IN'
            ),
            array(
                'taxonomy' => 'kiacategory',
                'field' => 'slug',
                'terms' => $arrCTermSlug,
                'operator' => 'IN'
            )
        )
        ));

我在UI端发现了我的问题(由于@Zhilevan),其中ajax响应暴露给了jQuery库DataTable(),该库的默认排序是按字母顺序排序。 我将排序参数设置为false:

$("#someid").DataTable({"ordering":false});

我愿意显示我的结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM