我在网站上使用高级自定义字段。
我有一个名为anime_par的转发器字段,sub_field称为animateur。子字段animateur是一个后对象。
我在我的页面循环中使用它,这个循环显示自定义帖子类型中的类别的帖子。
我要做的是在我的页面中显示animateur选择的帖子名称和帖子链接。
以下是我正在使用的代码,但它不起作用,它会显示当前页面的永久链接,而不是自定义字段中选择的代码。
<?php while(has_sub_field('anime_par')): ?>
<a href="<?php echo get_permalink('the_sub_field("animateur")'); ?>"><?php echo get_title('the_sub_field("animateur")'); ?></a>
<?php endwhile; ?>
有任何建议使这项工作?
感谢您的帮助,
答案 0 :(得分:6)
根据ACF上的转发器和后期对象文档,此方法对我有用。您必须在转发器循环内设置post对象。
我在您的字段名称中添加了一些完全可选的html以显示结构。
希望它有所帮助。
<!-- Start Repeater -->
<?php if( have_rows('anime_par')): // check for repeater fields ?>
<div class="a-container">
<?php while ( have_rows('anime_par')) : the_row(); // loop through the repeater fields ?>
<?php // set up post object
$post_object = get_sub_field('animateur');
if( $post_object ) :
$post = $post_object;
setup_postdata($post);
?>
<article class="your-post">
<?php the_title(); ?>
<?php the_post_thumbnail(); ?>
<?php // whatever post stuff you want goes here ?>
</article>
<?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
<?php endif; ?>
<?php endwhile; ?>
</div>
<!-- End Repeater -->
<?php endif; ?>
答案 1 :(得分:0)
the_sub_field
, has_sub_field
无法正常工作
您需要做的是使用has_sub_field
循环,如文档http://www.advancedcustomfields.com/resources/functions/the_sub_field/中所述
或者您可以使用get_field('repeater_sluf')
之类的
$rows = get_field('repeater_field_name' ); // get all the rows
$first_row = $rows[0]; // get the first row
$first_row_image = $first_row['sub_field_name' ]; // get the sub field value
答案 2 :(得分:0)
<?php if(get_field('favourite_design_quarters', 'user_'.$current_user->ID)): ?>
<?php while(has_sub_field('favourite_design_quarters', 'user_'.$current_user->ID)):
$company = get_sub_field('company_name');
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $company->ID ), 'package-thumbnail' );
?>
<tr>
<td><img src="<?php echo $image[0]; ?>" alt="<?=$company->post_title;?>" /></td>
<td><?=$company->ID;?></td>
<td style="text-align:left;"><?=$company->post_content;?></td>
<td><?=$company->post_date;?></td>
<td><a href="#">Delete</a></td>
</tr>