Я разрабатываю тему WordPress и использую пользовательские поля. Я столкнулся со следующей проблемой

#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/