我有ACF pro和Divi,我很难展示一个中继器的字段。 所以我尝试在 function.php 文件中添加函数以通过简码显示我的字段。
我对 php 不太了解,抱歉,但我尝试获取一些信息来构建我自己的函数。
你能帮我吗?
我的中继器有 7 个子字段,一行的结果如下: 巴黎,4 月 11 日 11 点 30 分 马赛,4月11日至4月13日,10:00
因此编辑器可以添加一个城镇,并包含开始日期和结束日期(如果有),然后是一小时。文本“from”、“to”和“at”在条件下显示(例如结束日期不为空)。
这是我的代码,但我的 WordPress 出现了严重错误。
// ########### récupérer ACF repeater lieu_date_heure
function get_lieu_date_heure()
{
if (have_rows('lieu_date_heure')): /* this is repeater field */
while (have_rows('lieu_date_heure')):
the_row();
$ville = the_sub_field('ville'); /* this is repeater subfield */
$du = the_sub_field('du'); /* this is repeater subfield */
$date_debut = the_sub_field('date_debut'); /* this is repeater subfield */
$au = the_sub_field('au'); /* this is repeater subfield */
$date_fin = the_sub_field('date_fin'); /* this is repeater subfield */
$a = the_sub_field('a'); /* this is repeater subfield */
$heure = the_sub_field('heure'); /* this is repeater subfield */
endwhile;
echo '<div class="lieu_date_heure"><p>' . $ville . ', ' . $du. ' ' . $date_debut . ' au ' . $date_fin . ' à ' . $heure</p></div>';
return ob_get_clean();
}
add_shortcode('show_lieu_date_heure', 'get_lieu_date_heure');
谢谢 卡罗琳
我试过这个。我没有更严重的错误,但也没有内容。
function get_lieu_date_heure()
{
ob_start(); // Initialiser le tampon de sortie
if (have_rows('lieu_date_heure')): /* this is repeater field */
while (have_rows('lieu_date_heure')):
the_row();
$ville = the_sub_field('ville'); /* this is repeater subfield */
$du = the_sub_field('du'); /* this is repeater subfield */
$date_debut = the_sub_field('date_debut'); /* this is repeater subfield */
$au = the_sub_field('au'); /* this is repeater subfield */
$date_fin = the_sub_field('date_fin'); /* this is repeater subfield */
$a = the_sub_field('a'); /* this is repeater subfield */
$heure = the_sub_field('heure'); /* this is repeater subfield */
echo '<div class="lieu_date_heure"><p>' . $ville . ', ' . $du . $date_debut . ' ' . $au . $date_fin . ' ' . $a . $heure . '</p></div>';
endwhile;
endif;
return ob_get_clean(); // Récupérer et nettoyer la sortie du tampon
}
add_shortcode('show_lieu_date_heure', 'get_lieu_date_heure');
我也用
get_sub_field
代替 the_sub_field
,结果是一样的:没有内容显示
卡罗琳