问题描述

我的自定义’Home’ 页面设置为通过自定义日期字段排序我的自定义帖子 (更新为自定义命名) 的 functions.php 代码:

// sort order for home page
add_action('wp', 'wwgo_check_page');
function wwgo_check_page () {
if (is_page()) {
    add_filter('get_previous_post_sort', 'sort_it');
    add_filter('get_next_post_sort', 'sort_it');
    add_filter('posts_orderby', 'sort_it' );
    add_filter('posts_join', 'join_it' );
    add_filter('posts_where', 'where_it' );

    function sort_it () {
        global $wpdb;

        return " $wpdb->postmeta.meta_value ASC ";
    }

    function join_it( $join ) {
        global $wpdb;

        $join .= " LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id) ";

      return $join;
    }

    function where_it( $where ) {
        global $wpdb;
        $where .= "AND $wpdb->postmeta.meta_key = 'deadline' ";

      return $where;
    }
}



}

哪个是花花公子和简单。现在。我希望这能在整个网站上工作。我想要在归档页面,类别等上的帖子按照自定义日期字段排序。

有任何想法吗?

我已经尝试将 “if” 更改为 is_archive(),但没有任何效果。我也试过<! is_single()>

我确定应该是简单的东西。但我是新来的 php,因此无知。

这里是 site,您可以在其中看到主页很好地排序,但是如果您单击’poetry'(唯一一个有几个帖子),则排序不起作用。

任何建议将得到很多的欢乐。

非常感谢你。

最佳解决方案

如果 orderby 未在查询字符串中显示,请使用 query_varsrequest 过滤器添加 orderby

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。