2016-01-13 84 views
0

我在Wordpress中使用高级自定义字段。我已成立了一个领域,能够对我这样的主页/前page.php文件模板,显示它...Wordpress高级自定义字段 - 在PAGE模板上显示

<?php the_field('primary_tagline'); ?> 

我想用我的page.php文件模板同场,但是当我放下在相同的代码中,不会返回任何结果。我不明白为什么它在一个模板上工作,而不是在另一个模板上。我是否需要不同的代码才能在多个模板中显示相同的字段结果?这里是代码...

<?php the_field('primary_tagline'); ?> 

    <div id="primary" class="content-area"> 
     <main id="main" class="site-main"> 
      <?php while (have_posts()) : the_post(); ?> 
       <?php get_template_part('template-parts/content', 'page'); ?> 
       <?php 
        if (comments_open() || get_comments_number()) : 
         comments_template(); 
        endif; 
       ?> 
      <?php endwhile; ?> 
     </main><!-- #main --> 
    </div><!-- #primary --> 

这是一个循环问题吗? ACF不会在循环之外显示?

回答

1

如果你想抓住循环外域的值,你必须提供POST_ID作为第二个参数的函数

the_field($field_name, $post_id); //prints value 
$value = get_field($field_name, $post_id); //returns value 

ACF - get_field()

ACF - the_field()

+0

像这样如果帖子ID是288? <?php the_field($ primary_tagline,$ 288); //打印值 $ value = get_field($ field_name,$ post_id); //返回值?> 不幸的是,它不起作用。 – lowercase

+0

必须是<?php the_field('primary_tagline',288); ?>'或'<?php echo get_field('primary_tagline',288); ?> '$ some_name'在php中是可变的:) – pgk

+0

不幸的是,这是行不通的。我只是不明白为什么它可以在front-page.php上正常工作,但不是page.php – lowercase

-2

是的,它应该在帖子内部,因为该字段是帖子的一部分。

+0

尽管如此,情况并非总是如此,所以必须是展示它的一种方式我想要什么? – lowercase

1

这样的:

<?php $value = get_field('primary_tagline', 288); 
echo $value; ?> 
+0

仍然显示空白... – lowercase

相关问题