我有一个针对作者的自定义字段组,以便在创建帖子或页面时,用户可以将多个作者添加到帖子中。
在帖子标题下,可能是:
rep_authors
是“转发器”字段。
在转发器中有两个子字段,一个子字段名为po_author
,该子字段设置为页面链接(作者名也将是指向其生物学页面的链接),第二个子字段为text_author_other
。在WP管理员中,这些内容显示在WYSIWYG编辑器下,并允许您根据有多少作者来添加行。 po_author
子字段是一个下拉列表,您可以在其中选择管理员中的任何注册作者,而text_author_other
字段则允许您手动输入新作者。
下面有我的代码,它计算名称并回显一个基本短语,以测试逻辑并确保该部分正常工作。
if ( class_exists( 'acf' ) ) :
?>
<?php if ( have_rows( 'rep_authors' ) ):
$authors = get_field( 'rep_authors' );
$number_authors = count( $authors );
?>
// Determines how to display author names based on number of authors
<?php if ( 0 === $number_authors ) {
echo 'There are no authors';
} elseif ( 1 === $number_authors ) {
echo 'There is 1 author';
}
elseif ( 2 === $number_authors ) {
echo 'There are 2 authors';
}
elseif ( 2 < $number_authors ) {
echo 'More than 2 authors';
}
endif;
?>
以下内容使名称在一行中一个接一个地显示,但是我需要如上所述的显示方式,使其具有条件。
<?php $post_id = get_sub_field('po_author', false, false);?>
<?php if( $post_id ): ?>
<a href="<?php echo get_the_permalink($post_id); ?>"><?php echo get_the_title($post_id); ?></a>
<?php endif; ?>
<?php else : ?>
<?php the_sub_field('text_author_other');?>
<?php endif; ?>
<?php
endwhile;
endif;
?>