我在Wordpress中有一个名为People的自定义帖子类型(人们中的每个帖子都是具有某些生物细节的人等)。
在每篇人物帖子中,我创建了一个名为“tags”的自定义字段,其中包含一系列复选框。
如果有人点击了System Manager复选框,我希望只能浏览特定页面上的所有系统管理员。
我获得的最大成功是使用wp_get_recent_posts而不是新的wp_query ..这将输出所有人UNTIL我添加我的额外元查询搜索。然后什么都没有出现。
$people_args = array(
'post_type' => 'people',
'post_status'=>'publish',
'meta_query' => array(
array(
'key' => 'tags', // name of custom field
'value' => 'systemmanager',
'compare' => 'LIKE'
)
)
);
$people_posts = wp_get_recent_posts($people_args);
foreach( $people_posts as $people ){
$fields = get_fields($people["ID"]);
if (get_post_thumbnail_id( $people["ID"] )>0) {
$myimgsp = wp_get_attachment_image_src(get_post_thumbnail_id($people["ID"]),'full');
echo '
<li class="item">
<a href="'.get_permalink(43).'"><img src="'.$myimgsp[0].'" alt="'.$people["post_title"].'" class="img-responsive" /></a>
<div class="profile">
<h3>'.$people["post_title"].'</h3>
<p>'.$fields["job_title"].'</p>
<a href="'.get_permalink(43).'" class="btn invert black">View Profile</a>
</div>
</li>';
}
}
wp_reset_query();
我已经坚持了几个小时尝试所有不同类型的循环,但我没有运气。有没有人遇到过这个问题?
答案 0 :(得分:0)
如果你坚持查询可能尝试不同的方法并使用查询中的post_id并在代码中进行小循环,使用get_post_meta(post_id)来检查元键并获取标签值...类似这样的东西...
$meta = get_post_meta($post_ID);
foreach($meta as $key=>$val)
{
if ($key == 'tags')
echo $val;
}
答案 1 :(得分:0)
所以我感觉有点傻!在我的functions.php中,我忘了设置自定义帖子类型应该支持自定义字段。因此,即使我的高级自定义字段显示...当我调用它时它没有被触及。
要纠正我添加到我的自定义帖子类型配置:
'supports' => array('title','thumbnail','custom-fields')