#wordpress #image #templates #wordpress-theming #theme-development
Вопрос:
Мой код
<`li><img src="<?php echo get_post_meta($post->ID, '_for-gallery', true); ?> " alt=""></li>`
Код должен дать это:-
<img src="Array" alt="" draggable="false">
Но код дает это:-
<img src=" " alt="" draggable="false">
Ответ №1:
Посмотрите на ссылку на код get_post_meta()
— там говорится, что функция вернет массив, если 3-й параметр ( $single
) равен false
:
Возвращает: (смешанный) массив, если значение $single равно false. Значение мета-поля, если значение $single равно true. Значение False для недопустимого $post_id.
В своем коде , который вы отправляете true
, попробуйте вместо этого:
get_post_meta($post->ID, '_for-gallery', false);
Более подробная информация здесь: https://developer.wordpress.org/reference/functions/get_post_meta/
Комментарии:
1. Спасибо за повтор. Но когда я посылаю «ложь», это показывает:-
<img src="<br /> <b>Warning</b>: Array to string conversion in <b>E:xampphtdocscometwp-contentthemescomet-2021formatscontent-gallery.php</b> on line <b>9</b><br /> Array " alt="" draggable="false">
2. Это хорошо! это означает, что вы действительно получаете ответ массива таким образом 🙂 Если вы хотите увидеть, что внутри, попробуйте: $post_meta = get_post_meta($post->идентификатор, ‘_for-галерея’, ложь); print_r($post_meta);
Ответ №2:
Когда вы используете get_post_meta
функцию с $single в качестве true, просто получите первый элемент, а false-все элементы, разделенные запятой.
Глядя на ваш код, я полагаю, что custom_field-это URL-адрес, в таком случае, зачем вам нужен массив в качестве URL-адреса? вы должны получить веревку…
Вы можете проверить здесь: https://developer.wordpress.org/reference/functions/get_post_meta/