【问题标题】:How filter posts by Year on Wordpress如何在 Wordpress 上按年份过滤帖子
【发布时间】:2021-12-22 03:44:12
【问题描述】:

如何按年份、自定义字段过滤帖子?

$args = array(
    'post_type'   => 'movies',
    'showposts'   => '28',
    'meta_value' => array( 'release_date' =>  '2021-09-01', ),          );

【问题讨论】:

    标签: php arrays wordpress


    【解决方案1】:

    您可能需要元查询行中的一些内容: 见WP_Meta_Query

    $args = array(
                  'post_type' => 'movies',
                  'post_status' => 'publish',
                  'posts_per_page' => -1,
                  'orderby'   => 'release_date',
                  'order'     => 'ASC',
                  'meta_query'  => array(
                    'relation' => 'AND',
                    array(
                      'key'   => 'release_date',
                      'value'     => '2021-09-01',
                      'compare'   => '=',
                      'type' => 'DATE'
                    ),
                  )
                );
    

    【讨论】:

    • 在您的帮助下,我添加了 2 个数组,开始和结束日期,并找到了解决方案,谢谢我的朋友!!
    【解决方案2】:

    只需使用全局 $wpdb 来执行您的自定义数据库查询。

    应该是这样的:

    SELECT p.ID, m.meta_value as post_year FROM wp_posts p INNER JOIN wp_postmeta m ON (p.ID = m.post_id and m.meta_key = 'release_date') WHERE p.post_type = 'movies' and 'publish' ORDER BY m.meta_value DESC;

    在 PHP 端,您可以使用类似以下代码:

    global $wpdb;

    $results = $wpdb->get_results( $query, 'ARRAY_A' );

    或使用WP_Meta_Query。但我相信它可能会被解决为简单的 DB 请求而无需额外的帮助类。

    如果您熟悉 mysql,您将能够根据您的目标轻松自定义该请求。

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      相关资源
      最近更新 更多