我为我的自定义帖子类型“books”创建了几个自定义字段
有一个语言复选框。每当检查一种语言时,就会添加该语言的几个自定义字段(即标题、封面图像、isbn)。
当显示“book”的内容时,我想循环浏览我的自定义字段,并在可折叠面板中显示属于一起的字段。以下是我目前掌握的情况:
<?php $fields = get_field_objects();
if ($fields): ?>
<ul>
<?php
foreach ($fields as $name => $field):
if (stripos($name, \'isbn\') !== false) : ?>
<button data-toggle="collapse" data-target="#demo">Deutsch/<?php echo substr($field[\'label\'], strpos($field[\'label\'], " ") + 1); ?></button>
<div id="demo" class="collapse">
<?php //isbn
echo $field[\'prepend\'] . " " . $field[\'value\']; ?> </br>
<?php echo the_field(\'titel_\'.substr($field[\'label\'], strpos($field[\'label\'], " ") + 1)); ?>
</div>
<?php endif;
endforeach; ?>
</ul>
<?php endif; ?>
折叠按钮显示正确的数据(即德语/英语、德语/阿拉伯语),但标题和ISBN都属于显示的第一语言。
如果有任何提示,我将不胜感激!
$fields变量的var\\u dump():EDIT 删除了var\\u转储,因为它太大了!
Edit
这是我代码的更新:它现在显示了正确的字段和数据,但我不知道如何将其放在可折叠面板中。。
<b>Erhältlich in den folgenden Sprachausgaben:</b>
<?php
$fields = get_field_objects();
if ($fields): ?>
<br>
<?php
foreach ($fields as $name => $field): ?>
<?php //hoerprobe
if (get_field(\'horprobe_verfuegbar\') == 1) :
if (stripos($name, \'hoerprobe\') !== false) : ?>
<?php echo $field[\'label\'];
$file = get_field($name); ?>
<audio controls>
<source src="<?php echo $file[\'url\']; ?>">
Your browser does not support the audio tag.
</audio>
</br>
<?php endif;
else :
// echo \'false\';
endif; ?>
<?php
if (stripos($name, \'isbn\') !== false) : ?>
<button data-toggle="collapse" data-target="#demo">
Deutsch/<?php echo substr($field[\'label\'], strpos($field[\'label\'], " ") + 1); ?></button>
<?php //isbn
echo $field[\'prepend\'] . " " . $field[\'value\']; ?> </br>
<?php //titel
echo the_field(\'titel_\' . substr($field[\'name\'], strpos($field[\'name\'], "_") + 1)); ?> </br>
<?php //coverimage
$titelbild = get_field(\'titelbild_\' . substr($field[\'name\'], strpos($field[\'name\'], "_") + 1)); ?>
<?php if ($titelbild) : ?>
<img src="<?php echo $titelbild[\'url\']; ?>" alt="<?php echo $titelbild[\'alt\']; ?>"/>
<?php endif; ?></br>
<?php endif;
endforeach;
endif; ?>
添加此时
<div id="demo" class="collapse">
...</div>
无论我点击哪个按钮,它只会打开第一语言的数据。。
Edit 2
音频文件在折叠面板内不工作。其工作原理如下:
<b>Erhältlich in den folgenden Sprachausgaben:</b>
<?php
$fields = get_field_objects();
if ($fields): ?>
<br>
<?php
foreach ($fields as $name => $field): ?>
<?php //hoerprobe
if (get_field(\'horprobe_verfuegbar\') == 1) :
if (stripos($name, \'hoerprobe\') !== false) : ?>
<?php echo $field[\'label\'];
$file = get_field($name); ?>
<audio controls>
<source src="<?php echo $file[\'url\']; ?>">
Your browser does not support the audio tag.
</audio>
</br>
<?php endif;
else :
// echo \'false\';
endif; ?>
<?php
if (stripos($name, \'isbn\') !== false) : ?>
<?php $lang = substr($field[\'name\'], strpos($field[\'name\'], "_")); ?>
<button data-toggle="collapse" data-target="#demo<?php echo $lang ?>">
Deutsch/<?php echo substr($field[\'label\'], strpos($field[\'label\'], " ") + 1); ?> </button>
<div id="demo<?php echo $lang ?>" class="collapse">
Lorem ipsum dolor text....
<?php //isbn
echo $field[\'prepend\'] . " " . $field[\'value\']; ?> </br>
<?php //titel
echo the_field(\'titel_\' . substr($field[\'name\'], strpos($field[\'name\'], "_") + 1)); ?> </br>
<?php //coverimage
$titelbild = get_field(\'titelbild_\' . substr($field[\'name\'], strpos($field[\'name\'], "_") + 1)); ?>
<?php if ($titelbild) : ?>
<img src="<?php echo $titelbild[\'url\']; ?>" alt="<?php echo $titelbild[\'alt\']; ?>"/>
<?php endif; ?></br>
</div>
<?php endif;
endforeach;
endif; ?>
但只要我移动
hoerprobe 折叠面板内部的一部分,不再显示。。