我正在使用ACF选择字段来启用页面管理员以选择要在页面内容下显示的帖子类别。例如,如果他在ACF选择字段中选择“电视”,则该类别中的所有帖子将显示在页面内容之后。以下是页面底部(主要内容之后)的代码,来自页面模板:
<h2>Learn more about <?php the_field('main_page'); ?></h2>
<ul>
<?php
$main_page=get_field('main_page');
$related_systems = new WP_Query( 'category_name='.$main_page );
while( $related_systems->have_posts() ) : $related_systems->the_post();
if($post->post_type == 'post'):
?>
<li><a href="#"><?php the_title();?></a></li>
<?php
endif;
endwhile; ?>
</ul>
以下是ACF设置截图
在包含主要四页模板的所有四个页面中,选择字段在管理员端显示正常,但get_field('main_page')
或the_field('main_page')
最终都空白(我测试了get_field
echo
并且没有显示任何内容。如何获取页面模板中的字段值?
我正在使用WordPress 3.8.1和ACF版本4.3.5
答案 0 :(得分:1)
在主要内容中,添加$page_id = get_the_ID();
。
在自定义循环中,调用字段:
the_field( 'main_page', $page_id );
get_field( 'main_page', $page_id );
如果在循环中使用,那些函数在没有ID的情况下工作,否则我们需要指定我们要求的帖子。
此外,您可以在调用WP_Query时过滤帖子类型:
WP_Query ( 'post_type=post&category_name=' . $main_page );