我有两个职位类型:艺术家和事件。WordPress的+ PHP的:查询帖子找到那些包含自定义字段数组,其中包含一个特定的键
我已经把在事件编辑器所有艺术家的检查列表相关的艺术家和活动,以便多个艺术家可以与多个事件相关联。活动编辑器上的艺术家自定义字段将保存为艺术家帖子ID的数组。
在活动页面上显示我的艺人名单与下列每个事件:
//Get Event Artists
$postID = $post->ID;
$meta = get_post_meta($postID, $_artistMeta->$postID, TRUE);
$artists = unserialize($meta['_artistMeta'][0]);
$output = array();
foreach ($artists['artistName'] as $artist) {
$theArtist = get_post($artist);
$output[] = '<li><a href="'.get_permalink($theArtist->ID).'">'.$theArtist->post_title.'</a></li>';
}
<?php if($output) { ?>
<div class="tw-event-artists bg1">
<ul class="nav-inl group me c2 comma-list">
<li class="bo"><?php echo $featured; ?>:</li>
<?php echo implode('', $output); ?>
</ul>
</div>
<?php } ?>
我想现在发现的问题是,试图“去反”。所以在我的艺术家档案中,我想找到每位艺术家的最新活动。
我需要创建一个自定义查询发现事件的帖子,其艺术家阵列包含当前艺术家塞。
我认为http://css-tricks.com/snippets/wordpress/custom-loop-based-on-custom-fields/该教程是一个很好的起点,但我的PHP印章根本就没有好到足以破解它。
如何写这个查询得到我想要的东西?
谢谢!
我实现这一目标的当前方法就是像这样,放在我的艺术家循环档案模板中,但我想这将是极为缓慢且低效,因为它必须得到每一个艺术家的每一个事件。
<?php
$artistID = $post->ID;
$args = array(
'eventDisplay'=> 'upcoming',
'posts_per_page' => -1
);
$events = tribe_get_events($args);
$has_date = false;
if ($events):
global $post;
foreach ($events as $post):
setup_postdata($post);
//Get Event Artists
$postID = $post->ID;
$meta = get_post_meta($postID, $_artistMeta->$postID, TRUE);
$artists = unserialize($meta['_artistMeta'][0]);
foreach ($artists['artistName'] as $artist) {
if($artist == $artistID) {$has_date = true;}
}
endforeach;
endif;
?>
<?php if($has_date) {echo 'HAS DATE';} ?>
这可能有所帮助:http://wordpress.stackexchange.com/a/11051 – micahwittman 2012-04-18 01:40:58
**对mods的注意**:这个问题会更适合WPSE。 – 2012-04-18 16:08:00