Php Wordpress高级自定义字段转发器显示标题循环外部

Php Wordpress高级自定义字段转发器显示标题循环外部,php,wordpress,audio,while-loop,repeater,Php,Wordpress,Audio,While Loop,Repeater,所以我有一个mediaelement.js音频播放器,我正在使用高级自定义字段插件,我希望能够在播放器上显示当前曲目的标题,下面是我的代码 <audio class="mejs-new" style="width: 100%; height: auto;" controls width="100%" height="auto"> <?php if(get_field('audio_repeater')): ?> <?php while(has

所以我有一个mediaelement.js音频播放器,我正在使用高级自定义字段插件,我希望能够在播放器上显示当前曲目的标题,下面是我的代码

<audio class="mejs-new" style="width: 100%; height: auto;" controls width="100%" height="auto">

  <?php if(get_field('audio_repeater')): ?>

        <?php while(has_sub_field('audio_repeater')): ?>

          <?php $title = get_sub_field('music_title'); ?>
          <source src="<?php the_sub_field('music_url'); ?>" title="<?php echo $title; ?>" type="audio/mp3">  
          <p><?php echo $title; ?></p>
        <?php endwhile; ?>

      <?php endif; ?>
</audio>



如果我理解正确,您希望将标题移到
标记之外,但只能从循环中获取标题

实际上,您已经差不多做到了—最简单的方法是在循环中设置变量的标题,您已经在这样做了(
$title=get_sub_field('music_title');
)。现在,您需要做的就是在需要时回显变量

因为您已经在访问循环中的函数时设置了变量,所以现在可以在不需要循环的情况下在之后回显该变量

例如:

    <?php endif; ?>
</audio>

<p><?php echo $title; ?></p>

编辑

我假设你只有一个标题,我没有质疑你为什么要使用一个标题的转发器:)要在之后打印标题列表,你可以使用类似的方法,除了这次你需要保存循环的结果,然后再次循环

最简单的方法是重复整个循环代码,但只打印标题,但效率有点低。理想情况下,我们应该只获得一次场地。这里有另一种方法来完成整个过程:

<?php $audio_repeater = get_field("audio_repeater"); ?>

<audio class="mejs-new" style="width: 100%; height: auto;" controls width="100%" height="auto">

  <?php if((array) count($audio_repeater)): ?>

        <?php foreach($audio_repeater as $audio_source): ?>

          <source src="<?php echo $audio_source["music_url"]; ?>" title="<?php echo $audio_source["music_title"]; ?>" type="audio/mp3">  

        <?php endforeach; ?>

      <?php endif; ?>
</audio>

<?php foreach($audio_repeater as $audio_source): ?>
    <p><?php echo $audio_source["music_title"]; ?></p>
<?php endforeach; ?>


什么不起作用?我不确定如何在音频播放器上显示标题,我尝试在循环外回显$title,但不起作用,我想我理解。你很接近,看到我的答案了。我试过了,但是如果我点击播放列表,它只会回显第二首曲目的标题,而不会回显第一首或任何其他曲目。哦,明白了。你没提那件事。请始终在问题中提及您尝试过的内容。我将更新我的答案。我已将其添加到我的帖子中。好的,我已经扩展了代码,向您展示如何运行另一个循环来打印标题。如果你想让它自动改变,你需要对它进行调查,因为这需要更多的工作-你需要查看JavaScript选项,然后在遇到困难时问一个新问题。很抱歉我不够清楚,我不想打印标题列表,只是当前播放曲目的标题,因此,当我点击下一首曲目时,它只显示该曲目的标题。