我正在使用ACF PRO的中继器功能,该功能允许在一个帖子中使用一个或多个子字段。我正在使用此功能,以便内容编辑者可以为每个日期分配优先级(高= 1和低= 0)的帖子分配多个日期。
以下代码查询指定日期与今天日期相匹配的帖子。 然后我想订购帖子,以便首先列出指定的日期优先级1级帖子。 一切都按预期工作,但当我的帖子有多个指定日期/优先级时,查询只使用它获得的第一个优先级值,而不仅仅是分配给特定(今天)日期的优先级值。
我不知何故需要识别分配日期的行#,以便我只能利用该子行的优先级值。任何帮助都会很棒!提前谢谢!
如果您不熟悉ACF中继器功能,他们会使用三部分命名约定来重复子字段:
OR main-custom-field-name_row#_sub-field-name
<?php
function my_posts_where( $where ) {
$where = str_replace("meta_key = 'ssm_assign_%", "meta_key LIKE 'ssm_assign_%", $where);
return $where;
}
add_filter('posts_where', 'my_posts_where');
$datetoday = current_time('Ymd');
$args = array(
'posts_per_page'=> 2,
'post_type' => 'ssm',
'meta_query' => array(
'relation' => 'AND',
'assigned_dates' => array(
'key' => 'ssm_assign_%_ssm_assigned_date',
'compare' => '=',
'value' => $datetoday,
),
'assigned_priorities' => array(
'key' => 'ssm_assign_%_ssm_date_priority',
'compare' => 'EXISTS',
),
),
'orderby' => 'assigned_priorities',
'order' => 'DESC',
);
// query
$the_query = new WP_Query( $args );
if( $the_query->have_posts() ):
// Start the loop.
while ( $the_query->have_posts() ) : $the_query->the_post();
include(locate_template('content.php'));
endwhile;
// End the loop.
get_template_part( 'content', 'none' );
endif; //End of customized current day posts
wp_reset_query(); // Restore global post data stomped by the_post().
?>