我正在安装高级自定义字段的WordPress网站上工作。其中一页显示了乐队的发行。我为发布创建了一个自定义帖子类型,为歌词创建了一个。该版本具有一个名为'tracklist'
的灵活内容字段。此字段有一个名为'tracks'
的布局,其中一行包含两个名为'trackname'
(文本)和'lyrics'
(关系)的字段。 'lyrics'
已被设置为最多一个帖子,因此您只能选择该特定歌曲的歌词。
我如何从这个名为'lyrics'
的关系字段中获取链接?
这是我到目前为止的代码,但当然$lyrics
包含一个数组,所以它不会起作用:
// check if the flexible content field has rows of data
if( have_rows('tracklist') ):
$x = 1;
echo '<p class="tracklist">';
// loop through the rows of data
while ( have_rows('tracklist') ) : the_row();
if( get_row_layout() == 'tracks' ):
$trackname = get_sub_field('trackname');
$lyrics = get_sub_field('lyrics');
echo '<strong>'.$x.'</strong> '.$trackname.' <a href="'.$lyrics.'">(lyrics)</a><br />';
endif;
$x++;
endwhile;
echo '</p>';
endif;
从插件的website,我找到了这段代码。但是,有一种更容易的方式,因为只有一种关系吗?
<?php
$posts = get_field('relationship_field_name');
if( $posts ): ?>
<ul>
<?php foreach( $posts as $p ): // variable must NOT be called $post (IMPORTANT) ?>
<li>
<a href="<?php echo get_permalink( $p->ID ); ?>"><?php echo get_the_title( $p->ID ); ?></a>
<span>Custom field from $post: <?php the_field('author', $p->ID); ?></span>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>