我目前正在开发一个网站,我有三种自定义帖子类型(发言人、事件、视频)。每个活动都与演讲者有关系,因此在创建活动时,他们会选择演讲者在该活动中发言的内容。我的活动页面工作正常,我可以给演讲者打电话。我的视频自定义帖子类型中存在的问题创建视频时,用户有两个关系,他们可以选择录制的事件和用于哪个扬声器。所以在我的活动页面上,每个发言人下面。我想得到他们为那次活动拍摄的视频。我尝试过使用元查询,但我无法让它工作。我已经在ACF论坛上发帖,没有回复。如果有任何帮助,我都会非常感激。我已经想尽一切办法了。
http://support.advancedcustomfields.com/forums/topic/nesting-relationship-querys/
以上是高级定制现场支持论坛上的帖子。
这是我活动的粘贴箱。php
http://pastebin.com/LB8bdyKj
这是代码部分,
<?php
$posts = get_field(\'speakers\');
if( $posts ) :
foreach( $posts as $post) :
setup_postdata($post);
?>
<div class="span_6 speaker">
<div class="span_5">
<img src="<?php the_field(\'speakers_image\'); ?>" />
</div>
<div class="span_7">
<h3><?php the_title();?></h3>
<?php
$videos = get_posts( array(
\'post_type\' => \'videos\',
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'speaker\',
\'value\' => get_the_ID()
),
array(
\'key\' => \'events\',
\'value\' => $eventid
)
)
) );
$videoquerys = new WP_Query($videos);
?>
<a class="" href="#">View Profile</a>
</div>
</div>
以上是我在事件和演讲者之间尝试的信息,我可以很好地获得它,查询演讲者和事件,并获得与我有问题的视频匹配。
SO网友:pburke
看起来你两者都在用get_posts()
和new WP_Query()
-- 你只需要一个或另一个。您还使用WP_Query()
不正确--它正在查找一组参数,但您正在传递$videos
, 它是post对象的数组。
尝试以下操作:
<?php
$args = array(
\'post_type\' => \'videos\',
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'speaker\',
\'value\' => get_the_ID()
),
array(
\'key\' => \'events\',
\'value\' => $eventid
)
)
);
$videos = new WP_Query($args);
if($videos->have_posts()) :
while($videos->have_posts()) :
$videos->the_post();
?>
<!-- STUFF FOR EACH VIDEO HERE -->
<a href="<?php the_permalink(); ?>" ?>"><?php the_title(); ?></a>
<?php
endwhile;
endif;
?>
未经测试。希望对你有用。