具有高级自定义字段的Wordpress query_post数组(可能是一个简单的解决方案)

时间:2012-12-05 14:07:40

标签: arrays wordpress custom-fields posts

在Wordpress网站上工作,想知道是否有人能指出我正确的方向。 我有以下query_post来过滤我的模板上的帖子,并且工作得很好。

query_posts( array( 'category_name' => 'galoretv', 'post_type' => 'post', 'paged'=>$paged, 'showposts'=>0, ) );

如何附加此内容以包含对高级自定义字段中特定值的检查? 此类别的帖子有一个单选按钮,有三个选项'主要''次要''标准' 我想能够检查每个值,即如果你属于'galoretv'和'标准'这样做。

我使用上面的参数执行和排序页面,只是不确定如何添加ACF值。我能够使用粘性选项让它工作,但这将工作因为我需要有主要和第二选择性。这是显示我使用粘性。

query_posts( array( 'category_name' => 'galoretv', 'post_type' => 'post', 'paged'=>$paged, 'showposts'=>0, 'post__in'=>get_option('sticky_posts')) );

单选按钮字段称为“登陆网格放置”

有什么想法?检查文档,无法搞清楚。 http://www.advancedcustomfields.com/docs/field-types/checkbox/

认为这会起作用,但它没有

query_posts( array( 'category_name' => 'galoretv', 'post_type' => 'post', 'paged'=>$paged, 'showposts'=>0, 'landing-grid-placement' => 'primary') );

非常感谢任何帮助。这可能是一个简单的语法问题,但它躲避我并导致了很多问题。一直在寻找答案,但还没有找到答案。感谢所有读过这篇文章的人,并感谢所有提供解决方案的人。

以下附录中的附录代码

 <?php

    $args = array(
        'post_type' => 'post',
        'category-slug' => 'models-galore',            
        'showposts'=>1, 
        'meta_query' => array(
            array(
                'key' => 'grid_location',
                'value' => 'primary',
                'compare' => '=', 
                'type' => 'CHAR' 
            )
        )
    );

    $query = new WP_Query($args);
    if($query->have_posts()) {
        while($query->have_posts()) {
            $query->the_post();
            ?>

            <li class="span8">
                <div class="thumbnail">
                    <a href="<?php echo get_permalink(); ?>"><?php echo get_the_post_thumbnail( get_the_ID(), 'media-large-thumb' ); ?></a>
                    <h3>
                        <a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a>
                    </h3>
                </div>
            </li>
            <?php
        }
    }

    ?>

1 个答案:

答案 0 :(得分:1)

您可以使用meta_query

执行此操作

Here's the doc

这是一个例子:

$args = array(
    //...
    'post_type' => 'post', 
    'paged'=>$paged, 
    //...
    'meta_query' => array(
        array(
            'key' => 'landing-grid-placement',
            'value' => 'primary',
            'compare' => '=', //default
            'type' => 'CHAR' //default
        )
    )
);

//This is the shoposts option (deprecated since 2.1, now use posts_per_page)
$args['posts_per_page'] = -1; //-1 = infinite

//to add taxonomy
$args['tax_query'] = array(
    array(
        'taxonomy' => 'category',
        'field' => 'slug',
        'terms' => 'galoretv'
    )
);

$query = new WP_Query($args);
if($query->have_posts()) {
    while($query->have_posts()) {
        $query->the_post();
        ?>
        <li class="span8">
            <div class="thumbnail">
                <a href="<?php echo get_permalink(); ?>"><?php echo get_the_post_thumbnail( get_the_ID(), 'media-large-thumb' ); ?></a>
                <h2>
                    <a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a>
                </h2>
            </div>
        </li>
        <?php
    }
}

也许有一个更简单的解决方案:

$args = array(
    //...
    'post_type' => 'post', 
    'paged'=>$paged, 
    //...
    'meta_key' => 'landing-grid-placement', 
    'meta_value' => 'primary',
    'meta_compare' => '=' //default
    )
);
$query = new WP_Query($args);
if($query->have_posts()) {
    while($query->have_posts()) {
        $query->the_post();
        //do what you would normally do in your loop
    }
}