Advanced Custom Fields query

时间:2013-02-01 作者:jmysona

我有一个很简单的问题。这里有我的查询,它使用ACF

<?php query_posts(array(\'post_type\' => \'our-clients-list\', \'posts_per_page\' => 1, \'order\' => \'DSC\', \'orderby\' => \'rand\',\'paged\'=> $paged)); ?>

             <?php while(have_posts()) : the_post(); ?>

                       <?php the_field(\'testimonial_\'); ?>

             <?php endwhile; ?>
             <?php wp_reset_query();?>
因此,在我的自定义帖子类型中有一个名为“Certimonal\\uu”的字段,我只想在自定义字段不为空时执行查询,所以!=“”但不知道怎么做。有人能帮我或给我一些提示吗?

1 个回复
最合适的回答,由SO网友:helgatheviking 整理而成

我认为这应该是可行的,但我对“not”空字符串的高级元查询不是百分之百确定。这通常不是元查询的使用方式。因此,我离开了set_transient 行已注释掉。我刚刚注意到您正在尝试随机抽取1个帖子,因此您可能不想使用Transients API 虽然如此,但我认为缩短时间限制仍然是一个好主意,因此我将瞬态设置为存储1小时。如果没有,则始终可以提取查询部分。

// Get any existing copy of our transient data
if ( false === ( $custom_testimonials = get_transient( \'custom_testimonials\' ) ) ) {
    // It wasn\'t there, so regenerate the data and save the transient

   // params for our query

   array(); ?


    $args = array(
        \'post_type\' => \'our-clients-list\'
       \'posts_per_page\'  => 1,
       \'orderby\' => \'rand\'
       \'meta_key\'        => \'_featured\',
       \'meta_value\'      => \'yes\',
        \'meta_query\' => array(
            array(
                \'key\' => \'testimonial_\',
                \'value\' => \'\',
                \'compare\' => \'!=\'
            )
        )
    );

    // The Query
    $custom_testimonials = new WP_Query( $args );

    // store the transient - uncomment when sure the query is working (stores for 1 hour)
    // set_transient( \'custom_testimonials\', $custom_testimonials, 60*60*1 );

}

// Use the data like you would have normally...

// The Loop
if ( $custom_testimonials ) :

    echo \'<ul class="testimonial">\';

    while ( $custom_testimonials->have_posts() ) :
        $custom_testimonials->the_post();
        echo \'<li>\' . get_the_title() . \'</li>\';
    endwhile;

    echo \'</ul>\';

else :

echo \'No testimonials found.\';

endif;

/* Restore original Post Data
 * NB: Because we are using new WP_Query we aren\'t stomping on the
 * original $wp_query and it does not need to be reset.
*/
wp_reset_postdata();
关于的优秀参考Advanced Meta Queries

结束

相关推荐

Travel Blog Plugins

今年晚些时候,我将使用Wordpress创建一个关于我旅行的博客。我希望该博客具有以下功能我的帖子将被地理定位一张包含帖子位置的地图,可以单击地图上的各个点到达帖子</我正在寻找最好/最合适的插件。谢谢,艾尔。

Advanced Custom Fields query - 小码农CODE - 行之有效找到问题解决它

Advanced Custom Fields query

时间:2013-02-01 作者:jmysona

我有一个很简单的问题。这里有我的查询,它使用ACF

<?php query_posts(array(\'post_type\' => \'our-clients-list\', \'posts_per_page\' => 1, \'order\' => \'DSC\', \'orderby\' => \'rand\',\'paged\'=> $paged)); ?>

             <?php while(have_posts()) : the_post(); ?>

                       <?php the_field(\'testimonial_\'); ?>

             <?php endwhile; ?>
             <?php wp_reset_query();?>
因此,在我的自定义帖子类型中有一个名为“Certimonal\\uu”的字段,我只想在自定义字段不为空时执行查询,所以!=“”但不知道怎么做。有人能帮我或给我一些提示吗?

1 个回复
最合适的回答,由SO网友:helgatheviking 整理而成

我认为这应该是可行的,但我对“not”空字符串的高级元查询不是百分之百确定。这通常不是元查询的使用方式。因此,我离开了set_transient 行已注释掉。我刚刚注意到您正在尝试随机抽取1个帖子,因此您可能不想使用Transients API 虽然如此,但我认为缩短时间限制仍然是一个好主意,因此我将瞬态设置为存储1小时。如果没有,则始终可以提取查询部分。

// Get any existing copy of our transient data
if ( false === ( $custom_testimonials = get_transient( \'custom_testimonials\' ) ) ) {
    // It wasn\'t there, so regenerate the data and save the transient

   // params for our query

   array(); ?


    $args = array(
        \'post_type\' => \'our-clients-list\'
       \'posts_per_page\'  => 1,
       \'orderby\' => \'rand\'
       \'meta_key\'        => \'_featured\',
       \'meta_value\'      => \'yes\',
        \'meta_query\' => array(
            array(
                \'key\' => \'testimonial_\',
                \'value\' => \'\',
                \'compare\' => \'!=\'
            )
        )
    );

    // The Query
    $custom_testimonials = new WP_Query( $args );

    // store the transient - uncomment when sure the query is working (stores for 1 hour)
    // set_transient( \'custom_testimonials\', $custom_testimonials, 60*60*1 );

}

// Use the data like you would have normally...

// The Loop
if ( $custom_testimonials ) :

    echo \'<ul class="testimonial">\';

    while ( $custom_testimonials->have_posts() ) :
        $custom_testimonials->the_post();
        echo \'<li>\' . get_the_title() . \'</li>\';
    endwhile;

    echo \'</ul>\';

else :

echo \'No testimonials found.\';

endif;

/* Restore original Post Data
 * NB: Because we are using new WP_Query we aren\'t stomping on the
 * original $wp_query and it does not need to be reset.
*/
wp_reset_postdata();
关于的优秀参考Advanced Meta Queries

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。