【发布时间】:2021-12-22 03:44:12
【问题描述】:
如何按年份、自定义字段过滤帖子?
$args = array(
'post_type' => 'movies',
'showposts' => '28',
'meta_value' => array( 'release_date' => '2021-09-01', ), );
【问题讨论】:
如何按年份、自定义字段过滤帖子?
$args = array(
'post_type' => 'movies',
'showposts' => '28',
'meta_value' => array( 'release_date' => '2021-09-01', ), );
【问题讨论】:
您可能需要元查询行中的一些内容: 见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'
),
)
);
【讨论】:
只需使用全局 $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,您将能够根据您的目标轻松自定义该请求。
祝你好运。
【讨论】: