我有一个自定义的post类型“event”,它有一个转发器字段“event\\u session”,该字段有4个子字段“session\\u start”、“session\\u title”、“session\\u description”、“session\\u speaker”(与CPT speaker的post对象关系)。
我正在尝试创建一个将加载子字段的页面。这就是我所尝试的:
<?php
$args = array(
\'post_type\' => \'event\'
);
$the_query = new WP_Query( $args );
?>
<!-- WP_Query WordPress loop -->
<?php
// check if the repeater field has rows of data
if( have_rows(\'event_session\') ):
// loop through the rows of data
while ( have_rows(\'event_session\') ) : the_row();
// display a sub field value
the_sub_field(\'session_start\');
endwhile;
else :
// no rows found
endif;
?>
问题是我无法从CPT speaker中提取关系数据。如何将标题和公司名称(来自“speaker”的字段)输入到此页面?新代码:
<?php
$args = array(
\'post_type\' => \'event\'
);
$the_query = new WP_Query( $args );
?>
<!-- WP_Query WordPress loop -->
<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php if(get_field(\'event_session\')): ?>
<?php while(has_sub_field(\'event_session\')): ?>
<strong><?php the_sub_field(\'session_start\'); ?> </strong><?php the_sub_field(\'session_title\'); ?><br>
<?php
$eventspeakers = get_sub_field("session_speaker");
if ($eventspeakers && count($eventspeakers)>0)
{
foreach ($eventspeakers as $eventspeaker)
{
$speaker = get_post($eventspeaker);
echo\'speaker is\'.$speaker->post_title;
}
}
?>
<?php endwhile; ?>
<?php endif; ?>
<?php endwhile; else: ?>
<!-- Displayed if no posts or pages are available -->
<p>There are no posts or pages here!</p>
<?php endif; ?>
这会导致拉取演讲者帖子标题,但会重复多次。一个事件如下所示:8: 上午00点注册和;Breakfastspeaker isChristian Kochspeaker isspeaker isspeaker isspeaker isspeaker isspeaker is2015speaker isspeaker is2015speaker isspeaker is2015speaker isspeaker is2015speaker isspeaker is2015speaker isspeaker is2015speaker Is2015