Wordpress通过备用子字段

时间:2016-06-14 17:43:13

标签: wordpress repeater custom-fields advanced-custom-fields

我正在使用ACF PRO的中继器功能,该功能允许在一个帖子中使用一个或多个子字段。我正在使用此功能,以便内容编辑者可以为每个日期分配优先级(高= 1和低= 0)的帖子分配多个日期。

以下代码查询指定日期与今天日期相匹配的帖子。 然后我想订购帖子,以便首先列出指定的日期优先级1级帖子。 一切都按预期工作,但当我的帖子有多个指定日期/优先级时,查询只使用它获得的第一个优先级值,而不仅仅是分配给特定(今天)日期的优先级值。

我不知何故需要识别分配日期的行#,以便我只能利用该子行的优先级值。任何帮助都会很棒!提前谢谢!

如果您不熟悉ACF中继器功能,他们会使用三部分命名约定来重复子字段:

  1. 主定制字段名
  2. 行#
  3. 子字段名
  4. 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().
    
    ?>
    

0 个答案:

没有答案