在php中插入灵活的ACF php

在php中插入灵活的ACF php,php,wordpress,slideshow,advanced-custom-fields,Php,Wordpress,Slideshow,Advanced Custom Fields,我正在使用Easing Slider Pro制作幻灯片和高级自定义字段,以构建自定义页面布局。我不明白为什么ACF&PHP只输出我想插入到页面中的滑块的ID号,而不是滑块本身 我发现这个旧线程也有同样的问题,但它是针对常规ACF的,而不是一个灵活的内容字段:--另外,推荐的ES输出代码也发生了一些变化,如滑块159所示: <?php if ( function_exists( 'easingslider' ) ) { easingslider( 159 ); } ?> 这是我的

我正在使用Easing Slider Pro制作幻灯片和高级自定义字段,以构建自定义页面布局。我不明白为什么ACF&PHP只输出我想插入到页面中的滑块的ID号,而不是滑块本身

我发现这个旧线程也有同样的问题,但它是针对常规ACF的,而不是一个灵活的内容字段:--另外,推荐的ES输出代码也发生了一些变化,如滑块159所示:

<?php if ( function_exists( 'easingslider' ) ) { easingslider( 159 ); } ?>

这是我的代码,适用于照片和文本:

<?php while(the_flexible_field('flex_field')): ?>
    <?php if(get_row_layout() == 'photo'): ?>
      <div class="col-md-6">
         <h2>Photos</h2>
<img src='<?php the_sub_field('photo-stack_image'); ?>' class="img-responsive" />
      <BR><BR>
<img src='<?php the_sub_field('photo-stack_image2'); ?>' class="img-responsive" />
     </div>

<?php elseif( get_row_layout() == 'text' ): ?>
    <div class="col-md-6">
      <h2>Texts</h2>
         <?php the_sub_field('text_field');?>
    </div>

<?php elseif(get_row_layout() == 'slider'): ?>
     <div class="col-md-6">
       <h2>Sliders</h2>
          <?php if ( function_exists( 'easingslider' ) ) 
            { easingslider( the_sub_field('easing_slider_shortcode') ); } ?>
     </div>
<?php endif; ?>
<?php endwhile; ?>

照片
'class=“img响应”/>


'class=“img响应”/> 文本 滑块
我尝试过用get_sub_字段切换_sub_字段,但它甚至没有输出ID。我对PHP是新手,如果我错过了一些简单的东西,我不会感到惊讶,但是什么呢?提前谢谢

更新:谢谢Hobo!根据您的建议,我测试了ES函数(它可以工作),发现“echo get_sub_field('easing_slider_shortcode')”和“print_r(get_sub_field('easing_slider_shortcode'))都只返回了滑块的ID号,没有额外的代码。我仔细检查了flex字段、字段和子字段的名称,它们都是正确的

我不知道这是否有助于说明问题所在,但我通过ACF的管理端prepend和append功能在ES ID号周围添加了PHP代码,但它没有在页面上呼出代码

更新两个第二次尝试成功了——谢谢Hobo!如果将来有人遇到此问题,下面是我的最终代码:

<div class="col-md-6">
     <?php elseif(get_row_layout() == 'slider'): ?>
     <?php if ( function_exists( 'easingslider' ) ) {
         $slider_id = (int) get_sub_field('easing_slider_shortcode');
    easingslider( $slider_id );
} ?>

首先,
获取子字段()
几乎肯定是您想要的
子字段()将立即输出一个值;如果要在另一个函数中使用该值,请使用
get\u sub\u field()

现在,您需要调试问题是出在
easingslider()
函数上,还是出在
get\u sub\u field()
返回的值上

要检查
easingslider()
函数,只需将ACF函数替换为它返回的值,例如

<div class="col-md-6">
    <h2>Sliders</h2>
    <?php if ( function_exists( 'easingslider' ) ) 
        { easingslider( 159 ); } ?>
</div>
然后查看生成的页面源代码(例如Chrome中的
Ctrl-U
),并查看
符号之间的内容。如果除了ID之外还有其他内容,请检查字段定义并确保它只是一个数字。如果什么都没有,试试看

<div class="col-md-6">
    <h2>Sliders</h2>
    #<?php print_r(get_sub_field('easing_slider_shortcode')); ?>#
</div>
如果行得通,试试看

<div class="col-md-6">
    <h2>Sliders</h2>
    <?php if ( function_exists( 'easingslider' ) ) {
        $slider_id = (int) get_sub_field('easing_slider_shortcode');
        easingslider( $slider_id );
    } ?>
</div>

滑块
可能在
easingslider()
代码中的某个地方有一个类型检查。

首先,
get\u sub\u field()
几乎肯定是您想要的
子字段()将立即输出一个值;如果要在另一个函数中使用该值,请使用
get\u sub\u field()

现在,您需要调试问题是出在
easingslider()
函数上,还是出在
get\u sub\u field()
返回的值上

要检查
easingslider()
函数,只需将ACF函数替换为它返回的值,例如

<div class="col-md-6">
    <h2>Sliders</h2>
    <?php if ( function_exists( 'easingslider' ) ) 
        { easingslider( 159 ); } ?>
</div>
然后查看生成的页面源代码(例如Chrome中的
Ctrl-U
),并查看
符号之间的内容。如果除了ID之外还有其他内容,请检查字段定义并确保它只是一个数字。如果什么都没有,试试看

<div class="col-md-6">
    <h2>Sliders</h2>
    #<?php print_r(get_sub_field('easing_slider_shortcode')); ?>#
</div>
如果行得通,试试看

<div class="col-md-6">
    <h2>Sliders</h2>
    <?php if ( function_exists( 'easingslider' ) ) {
        $slider_id = (int) get_sub_field('easing_slider_shortcode');
        easingslider( $slider_id );
    } ?>
</div>

滑块

可能在
easingslider()
code中的某个地方有一个类型检查。

我已经根据您的其他信息更新了我的答案。正如我所说,我很困惑为什么它不起作用,但还有一些事情要尝试。如果它们不工作,并且您的PHP日志中没有任何内容,请告诉我们。我明天可能有时间(今天早上在这里,所以24小时后),我可以下载插件并看一看。希望在Easing Slider和Easing Slider Pro之间没有太大区别。我已经根据您的其他信息更新了我的答案。正如我所说,我很困惑为什么它不起作用,但还有一些事情要尝试。如果它们不工作,并且您的PHP日志中没有任何内容,请告诉我们。我明天可能有时间(今天早上在这里,所以24小时后),我可以下载插件并看一看。希望Easing Slider和Easing Slider Pro之间没有太大区别。我已经用我使用的最终代码更新了我的问题。谢谢很高兴这有帮助。请接受我的答案(点击旁边的复选标记),因为它解决了您的问题。我已经用我使用的最终代码更新了我的问题。谢谢很高兴这有帮助。请接受我的答案(打旁边的复选标记),因为它解决了你的问题。