アーティストとイベントの2つの投稿タイプがあります。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
** Modsへの注意**:この質問はWPSEに適しています。 –