我有一个构建Bootstrap轮播的WP_Query。我添加了一个高级自定义字段单选按钮,该按钮允许客户端在帖子上显示是/否选项"功能"这个。我的WP_Query在没有Meta Query的情况下工作得很好,但是当我添加它时,它没有给出任何结果。我不确定这是不是因为这是在archive.php上。我添加了一个动态类别,它只显示当前类别的特色帖子(这也很好用)。它只是似乎没有工作的ACF。我已经验证了关键和&值存储在数据库中,就像在这里调用一样。我甚至使用get_field()语句成功地回显了该值,以确保它正常工作。我很难过。任何建议将不胜感激。
这是我的代码:
<?php
$qcatid = get_queried_object(); // So we can get the query category ID
$args2=array(
'post_type' => 'post',
'post_status' => 'publish',
'cat' => $qcatid->cat_ID, // Query the proper category
'orderby' => 'date',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'feature_in_slider_carousel',
'value' => 'Yes'
)
)
);
$mycat_query = null;
$mycat_query = new WP_Query($args2);
if( $mycat_query->have_posts() ) {
$slide_count = 0;
?>
<section id="featured-posts">
<div class="container">
<div class="row">
<div class="col-md-12">
<hr />
</div>
</div>
</div>
<div id="featured-carousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner" role="listbox">
<?php
while ($mycat_query->have_posts()) : $mycat_query->the_post(); ?>
<div class="item <?php if ($slide_count == 1) { echo 'active';} ?>">
<div class="row">
<div class="col-sm-2 col-sm-offset-3">
<div class="whitepaper-img">
<a href="<?php the_permalink(); ?>">
<?php
include( TEMPLATEPATH . '/inc/icon-include.php' );
if (has_post_thumbnail( $post->ID ) ) {
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'whitepaper-carousel' ); ?>
<img src="<?php echo $image[0]; ?>" alt="<?php the_title(); ?>" class="img-responsive" />
<?php }
else { ?>
<img src="<?php bloginfo('template_directory'); ?>/img/default-whitepaper.png" alt="<?php the_title(); ?>" class="img-responsive" />
<?php } ?>
</a>
</div>
</div>
<div class="col-sm-5">
<h3><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h3>
<?php the_excerpt();?>
<div class="post-tags">
<?php
$posttags = get_the_tags();
if ($posttags) {
echo '<ul class="list-inline">';
foreach($posttags as $tag) {
echo '<li><a href="'. get_bloginfo('url') .'/tag/' . $tag->slug . '/">' . $tag->name . '</a></li>';
}
echo '</ul>';
}
?>
</div>
</div>
</div>
</div>
<?php
$slide_count++;
endwhile; ?>
</div>
<!-- Controls -->
<a class="left carousel-control" href="#featured-carousel" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#featured-carousel" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<div class="container">
<div class="row">
<div class="col-md-12">
<hr />
</div>
</div>
</div>
</section>
<?php }
wp_reset_query();
?>
答案 0 :(得分:0)
据我所知,你的代码很好。我测试了在VVV上运行的本地站点并填充了WP虚拟内容。
为了测试我完全按照你的描述创建了自定义字段,可能的例外是我将单选按钮值/标签对设置为:
yes : Yes
no : No
我将默认值设置为no。
我使用了一个名为“自定义字段批量编辑器”的插件来为现有帖子批量分配值,然后使用(大部分)代码设置archive.php,所有内容都按预期工作。
$qcatid = get_queried_object();
$args2 = array(
'post_type' => 'post',
'post_status' => 'publish',
'orderby' => 'date',
'cat' => $qcatid->cat_ID,
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'feature_in_slider_carousel',
'value' => 'Yes'
)
)
);
$mycat_query = null;
$mycat_query = new WP_Query($args2);
if ($mycat_query->have_posts()) :
echo '<ul>';
while ($mycat_query->have_posts()) : $mycat_query->the_post();
echo '<li>' . get_the_title() . '</li>';
endwhile;
wp_reset_postdata();
echo '</ul>';
endif;
值得注意的是,这也没有meta_query:
$args2 = array(
'post_type' => 'post',
'post_status' => 'publish',
'orderby' => 'date',
'cat' => $qcatid->cat_ID,
'posts_per_page' => -1,
'meta_key' => 'feature_in_slider_carousel',
'meta_value' => 'Yes'
);
在两种情况下访问类别存档页面仅返回标记为“是”的帖子,并且来自相应的类别。
我在对它们进行某种编辑之后遇到了ACF标签/值的问题,比如改变foo:Bar to foo:Bat。在过去发生这种情况时,我发现删除并重新创建具有不同名称的字段已经让我有所帮助。
抱歉,我无法提供更多帮助。