Я создал мета-бокс с помощью редактора расширенное настраиваемое поле плагин
В этом мета-поле отображается текстовый редактор, из которого я могу создавать и добавлять галерею в сообщение.
Но при получении данных галереи.
$gallery = get_post_meta($post->ID, 'gallery', true);
echo $gallery;
это отображает
Как правило, данные галереи могут быть получены как
$galleries = get_post_gallery_images( get_the_ID() );
Но это, похоже, не работает, если я использую мета-поле для сохранения галереи.
Есть ли WordPress способ получить изображения галереи, просмотреть их и отобразить это изображение в лайтбоксе, или я должен попробовать любой другой метод?
Во-первых, я предполагаю, что Вы поместили «» этот короткий код в поле meta, поэтому
$ gallery = get_post_meta ($ post-> ID, ‘gallery’, true);
echo $ gallery;
Вернуть
могу попробовать это
$ gallery = get_post_meta ($ post-> ID, ‘gallery’, true);
echo do_shortcode ($ gallery);
А также
$ galleries = get_post_gallery_images (get_the_ID ());
Возвращает список элементов изображения с источниками загрузки изображений.
Это сделал трюк
<?php
$gallery = get_post_meta($post->ID, 'gallery', true);
preg_match('/\/', $gallery, $ids);
$images_id = explode(",", $ids[1]);
if ($images_id[0] != "") {
if (is_array($images_id) || is_object($images_id)) {
foreach ($images_id as $image) {
$image_url = wp_get_attachment_image_src($image, 'banner');
?>
<a href="<?php echo $image_url[0]; ?>">
<?php echo wp_get_attachment_image($image, 'destinatoin', 'false', array("class" => "img-responsive")); ?>
</a>
<?php }
}
} ?>
Что должно быть сделано, это
preg_match('/\/', $gallery, $ids);
$images_id = explode(",", $ids[1]);
который создаст массив идентификаторов, то я могу перебрать изображения с помощью
foreach ($images_id as $image) {
$image_url = wp_get_attachment_image_src($image, 'banner');
?>
<a href="<?php echo $image_url[0]; ?>">
<?php echo wp_get_attachment_image($image, 'destinatoin', 'false', array("class" => "img-responsive")); ?>
</a>
<?php }
Это невозможно, потому что я думаю, что вы не вставляете короткий код галереи в редактор сообщений,
поэтому $ galleries = get_post_gallery_images (get_the_ID ()); прийти ни с чем.
Итак, в поле мета-поля вставьте только идентификаторы изображений,
лайк
«53,54,55,56»
а также
$ gallery = get_post_meta ($ post-> ID, ‘gallery’, true);
Переменная $ gallery вернет строку, разделенную запятой, а затем взорвет ее
$ gallery_image_array = взорваться ($ gallery);
Тогда $ gallery_image_array будет иметь идентификаторы изображений, так что вы можете просмотреть их, и вы можете получить эти изображения с помощью wp_get_attachment_image_src
и распечатай как хочешь 🙂