Wordpress ACF无法检索字段信息

时间:2016-09-25 13:06:04

标签: php wordpress wordpress-theming advanced-custom-fields

我想知道我从后端获取信息的问题是什么。 (之前从未遇到过这样的问题)

我创建了一个由get_template_part()部分组成的index.php。 要

<?php get_header(); ?>


    <?php get_template_part( 'partials/index', 'slider' );
         get_template_part( 'partials/index', 'services' );
             get_template_part( 'partials/index', 'work' ); 
                get_template_part( 'partials/index', 'testimonials' ); 
                     get_template_part( 'partials/index', 'recent' ); 
                         get_template_part( 'partials/index', 'technologies' ); 
                             get_template_part( 'partials/index', 'contact' ); ?>


        <?php get_footer(); ?>

所有这些模板部件都包含自己的html + php。 它从那些部分中检索所有HTML,但是在ACF字段上的信息,它没有被检索。

index-services.php in&#34; partials&#34;文件夹示例:

<section id="services">
<div class="container">
    <div class="row">
        <div class="col-lg-12 text-center">
            <div class="title">

                <h1 class="section-heading text-uppercase">
                    <?php  the_field('service_section_title'); ?>
                </h1>

                <p class="text-faded">
                    <?php  the_field('service_section_description'); ?>
                </p>

                <div class="btn btn-primary btn-sm">
                    <a href="<?php  the_field('service_section_button_link'); ?>">Learn more</a>
                </div>

            </div>

        </div>
    </div>
</div>

添加index-services.php的所有链接(带转发器字段)

http://pastebin.com/xXwBf8uG

Image of retrieved HTML of get_template_part()

问题是,那些the_field()函数都没有从后端检索信息。

我在后端设置字段以在页面中显示为索引(并显示,填充)

我遇到查询循环问题吗?

2 个答案:

答案 0 :(得分:0)

尝试传递帖子ID:<?php the_field($field_name, $post_id); ?>

如果你不在循环中,那可能就是问题所在。

答案 1 :(得分:0)

ACF the_field()函数在循环内部工作。它使用$post->ID来获取与任何特定帖子或页面相关的信息。 尝试传递像the_field('FIELD_NAME', $post->ID);这样的帖子ID,或者如果是转发器,则需要在转发器循环中传递帖子ID:

if ( have_rows('FIELD_NAME', $post-ID) ){
    while ( have_rows('FIELD_NAME', $post->ID) ): the_row();
        the_sub_field('SUB_FIELD_NAME'); // No need to add post ID here
    endwhile;
}

我想这会解决你的问题。