主要内容之后的高级自定义字段

时间:2014-03-29 13:42:06

标签: php wordpress select advanced-custom-fields

我正在使用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

1 个答案:

答案 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 );