【发布时间】:2020-12-06 06:15:33
【问题描述】:
首先,我知道,我的 PHP 水平很一般,我 echo'ed 了整个 HTML,这很糟糕,但事实并非如此。所以我正在尝试创建一个 ACF 块中继器。我的目标是输出一张图片(卡片)网格,当我点击其中任何一张时,屏幕上和视频下方会显示一个视频,显示一个人的名字和姓氏。
所以到目前为止我所做的是我已经成功生成了网格,但是我卡在了视频部分。视频正在显示,但文本不显示。每个网格项目都应该有一个单独的视频,现在它是通过嵌入链接进行硬编码的。
这就是它的本意:link
由于我找不到从foreach 循环中获取$row 元素的方法,因此我尝试在代码的开头定义它们,但没有循环,它不会显示任何内容。
我希望获得一些关于循环或其他解决方案的建议,以显示每个网格项目的单独视频和文本。
PHP 代码:
<?php
$rows = get_field('video');
//Not sure if this is necessary
$name1 = get_sub_field('name');
$surname1 = get_sub_field('surname');
if( $rows ) {
echo '<div class="grid">';
foreach( $rows as $row ) {
$image = $row['thumbnail'];
$name = $row['name'];
$surname = $row['surname'];
$numberoforder = $row['number'];
$class = $row['additionalclass'];
echo '<div class="img ',$class,'" onclick="openVideo()">';
echo '<div class="name oswald-regular"><p>',$name, '<br>' ,$surname, '</p></div>';
echo '<img src=',$image,'>';
echo '<div class="number-of-order oswald-md2"><p>',$numberoforder,'</p></div>';
echo '</div>';
}
echo '</div>';
echo '<div class="show-more-btn">';
echo '<input value="Show more" id="btn" type="button" class="button" onclick="displayStories()">';
echo '</div>';
echo '<div class="personal-video" id="personal-video">';
echo '<div class="video-container">';
echo '<div class="closeBtn"><img src="/wordpress/wp-content/uploads/2020/11/close2.png" alt="Close" onclick="closeVideo()"/></div>';
echo '<iframe width="560" height="415" src="https://www.youtube.com/embed/1PalAURGxtM?rel=0&modestbranding=1&controls=0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen id="video1" onclick="playPause()"></iframe>'; //I'd want to display an individual video for each element also
echo '<h3 class="oswald-md2">';
echo $name1, " " ,$surname1; //This is what I'm struggling with - displaying the info
echo '</h3>';
echo '</div>';
echo '</div>';
}
提前致谢。
【问题讨论】:
标签: php wordpress advanced-custom-fields acfpro