如何让WordPress orderby与POST_EXCEPT列一起工作?

时间:2018-04-23 作者:greg

我可以使用WordPress内置的orderby按任何列对播放列表进行排序,除了post_excerpt

    echo wp_playlist_shortcode( array(
                        \'ids\' => \'7,8,9\',
                        \'order\' => \'DESC\',
                        \'orderby\' => \'post_excerpt\', 
    ));
WordPress Codex显然指出,“post\\u摘录”不是“orderby”参数的有效参数,没有人知道如何orderby 使用post_excerpt. 如何绕过此限制?

1 个回复
最合适的回答,由SO网友:greg 整理而成

我编辑了wp_playlist_shortcode 功能位于\\wp-includes\\media.php WP核心文件,通过添加

    if ($atts[\'orderby\']==\'excerpt\' || $atts[\'orderby\']==\'post_excerpt\') {

        function cmp($a, $b) {
            return strcmp($a["caption"], $b["caption"])*(-1);
        }

        usort($tracks, "cmp");
    }
之前$data[\'tracks\'] = $tracks; 线

基本上在所有轨迹生成到$tracks 在将此数组传递给最终数组之前$data, 我截取了代码并检查了orderby 参数设置为excerptpost_excerpt. 如果为trueusort 使用以下命令对数组进行降序排序caption 作为标准。在播放列表上下文中,WordPress指excerptcaption. 如果需要按升序排序,请删除*(-1)cmp 作用

感谢@Pat-J的建议usort.

结束

相关推荐

WordPress中GET_POSTS或WP_QUERY函数中的ORDERBY和ORDER过滤器无法工作

我在wordpress插件中有一个函数,它使用get\\u posts($数组)查询帖子。但我希望按降序将此设置为posts表的orderby post\\u modified字段,下面是我的代码: $arrProducts = get_the_terms($intPostId, \'products\'); if (is_array($arrProducts) && count($arrProducts)) { foreach ($