Я создал пользовательский тип записи и использовал CMB2, чтобы добавить в него опцию загрузки файлов, которая позволяет загружать несколько файлов.Я использую следующий код в файле single.php для вывода всех файлов, которые были загружены.
$files = get_post_meta( get_the_ID(), $file_list_meta_key, 1 );
if( $files != '' ) {
echo '<div class="ad-photos">';
// Loop through them and output an image
foreach ( (array) $files as $attachment_id => $attachment_url ) {
echo '<a href="' . wp_get_attachment_url( $attachment_id) . '" data-fancybox="group" >' . wp_get_attachment_image( $attachment_id, $img_size ) . '</a>';
}
echo '</div>';
}
Этот код работает хорошо.Теперь мне нужен код, который будет выводить только первый загруженный файл.Я интенсивно искал это и нашел много разных способов сделать это.Из того, что я могу собрать, лучший способ - использовать array_slice
.Я прочитал все, что я могу о array_slice
и перепробовал все что угодно, но я не могу понять, как внедрить его в мой код.
Это был мойЛучшая логическая попытка:
$otherfiles = get_post_meta( get_the_ID(), $file_list_meta_key, 1 );
if( $otherfiles != '' ) {
// Loop through them and output an image
$otherfiles = array_slice( $otherfiles, 0,1);
foreach ( $otherfiles as $attachment_id => $attachment_url ) {
echo '<a href="' . wp_get_attachment_url( $attachment_id) . '" data-fancybox="group" >' . wp_get_attachment_image( $attachment_id, $img_size ) . '</a>';
}
}
И, похоже, это меня сближает, потому что это заставляет его зацикливаться только один раз, но фактически не захватывает URL файла.Он просто выводит пустой тег <a>
.
Мне кажется, что я просто упускаю что-то простое здесь, но я прочитал все, что могу найти, и попробовал все, что мог придумать, и не могу понять этоиз.Приведенный выше код является наиболее близким, который я получил из множества различных методов.
Любая помощь или толчок в правильном направлении приветствуется.И если есть лучший способ сделать это, я весь слух!Я также попытался использовать цикл for
вместо этого, поскольку некоторые люди говорят, что это лучший вариант, но я не смог выяснить, как изменить код, который у меня есть, в цикл for
.Так что если кто-нибудь сможет показать мне, как это сделать, я буду очень благодарен.Я скопировал код, который я использую, из документации CMB2, и я просто не понимаю его достаточно хорошо, чтобы правильно его изменить, я думаю.