到今天为止已检查具有多个子字段的ACF转发器字段

时间:2018-08-20 07:35:08

标签: wordpress advanced-custom-fields acfpro

我有一个名为“ today”的自定义字段(中继器)。在其中,我有一个“选择日历日期”子字段。

在产品(woocommerce)上,我添加了1、2、3个或更多日期。返回日期类似于dd / mm,我得到今天的日期与类似date(d / m)进行比较。

问题是加载时间非常长,我没有结果...

我尝试过的事情:

$today = date('d/m');

$args = array(
    'numberposts'   => -1,
    'post_type'     => 'product',
    'meta_query'    => array(
        'relation'      => 'AND',
        array(
            'key'       => 'today_$_mdate',
            'compare'   => '=',
            'value'     => $today
        )
    )
);

    $the_query = new WP_Query( $args );

    if( $the_query->have_posts() ): ?>
    <ul>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
        <li>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        </li>
    <?php endwhile; ?>
    </ul>
<?php else:
    echo "No prods"; endif; ?>

<?php wp_reset_query(); 

转发器字段:today

子字段:date

为什么我不能只返回将Repeater字段子字段设置为的产品 今天的日期? 它甚至不退还产品。

这是WP中的产品句柄:http://prntscr.com/kkobbb

这是自定义字段集:http://prntscr.com/kkobqo

$today returns `20/08`

新方法:

$today = date('d/m');

$args = array(
    'post_type'      => 'product',
    'posts_per_page' => -1
);

$products = new WP_Query( $args );

if ( $products->have_posts() ) {
  echo '<ul>';
    while ( $products->have_posts() ) {
        $products->the_post();
        if( have_rows('today') ):
            while ( have_rows('today') ) : the_row();
                the_sub_field('mdate');
            endwhile;
        else :
            // no rows found
        endif;
    }
  echo "</ul>";
}

wp_reset_query();

仍然有大量的加载时间...和消息Fatal error: Allowed memory size of 536870912 bytes exhausted... in wp-includes/plugin.php on line 179

但至少我可以根据其转发器子字段过滤产品。

1 个答案:

答案 0 :(得分:0)

此问题已解决。从ACF自定义字段设置中,只需将转发器字段模式设置为line而不是table。对我来说,它被设置为表格,并且加载时间很长,而且崩溃了。