【问题标题】:Wordpress: Sort posts chronologically by custom fieldWordpress:按自定义字段按时间顺序对帖子进行排序
【发布时间】:2011-05-31 12:13:23
【问题描述】:

我有一些用作活动的帖子,其中包含活动日期的自定义字段。我正在寻找按事件日期(按时间顺序)排序这些帖子。 我想知道:

  • 是否可以将事件的日期自定义字段设置为“日期”格式 (目前,它是一个简单的 type=text)。
  • 如果我总是订购这些帖子 使用相同的格式(如 日/月/年)。我需要获得 3 个即将到来的事件(不是最后 3 个)。

wordpress 有内置函数可以比较日期和今天的日期吗?

谢谢

【问题讨论】:

    标签: wordpress date field


    【解决方案1】:

    我刚刚做到了! (www.wherewordsgo.com)

    好的,我只让它适用于“页面”但是。

    但如果您为“截止日期”创建一个元框,然后将日期设置为 yyyy/mm/dd 格式并将其添加到您的 functions.php 中可能会有所帮助:

    add_action('wp', 'check_page'); 功能检查页面(){ 如果(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;
        }
    }
    

    我是从某个网站上得到的(虽然我认为我已经失去了...大 WP 伙计的链接)并根据需要进行了更改。就像我说的那样,它仅适用于我的构建中的自定义页面(我使用的是自定义类型),但如果您在开始时将“is_page()”函数更改为与您相关的任何内容,它可能适用于所有内容。

    希望有帮助

    【讨论】:

      猜你喜欢
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多