【问题标题】:Advanced Custom Field not showing in template模板中未显示高级自定义字段
【发布时间】:2021-06-07 21:18:16
【问题描述】:

我绞尽脑汁想知道为什么这不起作用。对我来说似乎是正确的,但我一定错过了什么。

<?php
    if( have_rows('cta_box') ):
        while( have_rows('cta_box') ) : the_row();
            echo get_sub_field('cta_header');
            echo get_sub_field('cta_content');
        endwhile;
    endif;
?>

我在做傻事吗? 谢谢

【问题讨论】:

    标签: wordpress advanced-custom-fields


    【解决方案1】:

    这是一个组字段,而不是中继器。 This'd帮助。

    所以在你的情况下,你会像这样使用它。

    $cta = get_field('cta_box');
    
    echo $cta['cta_header'];
    echo $cta ['cta_content];
    

    【讨论】:

    • 还是什么都没有:S。我从您发送的链接中复制了我的代码,但仍然是空白字段。 $cta 的 var_dump 也为空。
    • 这些不是此页面上的唯一字段。这有什么改变吗?
    • 这取决于很多事情,您是要在“单”页上打印这个吗?环形?只需传递帖子 ID,它就会打印出来。像这样 $cta = get_field('cta_box', 23);我在这里手动添加 id,但这只是一个示例。您可以使用 $global post 然后 $post->ID 或 get_the_ID() 函数获取 ID。
    【解决方案2】:

    您的代码是正确的,我认为问题在于您希望在特定模板中显示的位置或页面中的任何位置,您只需要分配模板或页面或发布其将显示的任何内容。

    【讨论】:

      【解决方案3】:

      这是让它工作的代码。有人可以解释吗?此 ACF 上方的代码是否影响返回的内容?

      <?php while ( have_posts() ) : the_post(); 
          $cta = get_field('state_call_to_action');
          echo $cta['call_to_action_heading'];
          echo $cta['call_to_action_body'];
      endwhile; ?>
      

      【讨论】:

        猜你喜欢
        • 2014-03-23
        • 1970-01-01
        • 1970-01-01
        • 2018-08-26
        • 1970-01-01
        • 1970-01-01
        • 2019-08-20
        • 2018-04-15
        • 2015-05-27
        相关资源
        最近更新 更多