Intereting Posts
Вместо того, чтобы отправлять всю запись, есть ли способ отправить сообщение в виде сообщения или простое сообщение? Используйте страницу выбора страниц на странице создания WordPress Ошибка пользовательской статической страницы get_header Структура базы данных на разных серверах Как вы удаляете метадокс таксономии категории (иерархической)? Добавьте два настраиваемых поля по умолчанию на страницу «новое сообщение». Как добавить фиктивный скрытый пост, так что встроенный элемент может иметь комментарии? Форсировать форму поиска, чтобы перейти на чистый URL-адрес без нескольких переадресаций нужна определенная помощь с помощью флажков (выбор / отмена выбора рекомендуемых сообщений) Как я могу изменить это, чтобы показывать количество сообщений в месяц? Внутренняя таблица стилей в разработке темы WordPress Как извлечь строки перевода (двойные подчеркивания и _e)? Невозможно дезинфицировать выбранный элемент управления в настройке api Как отображать только две категории Вместо отображения всех категорий Как вывести иерархический путь таксономии, только с самым глубоким сроком?

(Frontend AJAX) получить данные о записи с эскизом изображения?

Я возвращаю данные, используя идентификатор сообщения через AJAX. Теперь, каков наилучший способ «слить» миниатюру изображения ( get_the_post_thumbnail( $id, 'medium' ) ) в данные, возвращаемые с сервера?

Мне нужно это как единственный объект JSON для передачи его в шаблон (все это прекрасно работает, просто нужно изображение).

Простая идея:

 $post = get_post( $post_id ); $post['image'] = get_the_post_thumbnail( $post_id, 'medium' ); echo json_encode( $post ); 

Причина, по которой ваша идея не работает, get_post возвращает объект post, а не массив (если он не задан вручную).

Это цитата из ссылки на WordPress :

Когда $ output является OBJECT, возвращается экземпляр WP_Post.

Какой тип вывода по умолчанию для get_post() . Если вам необходимо реализовать массив данных, а затем закодировать его с помощью JSON, сделайте следующее:

 // Let's retrieve the post object $post = get_post( $post_id ); // Set up the post data to use in our code setup_postdata($post); // Create an empty array for the data $json_input = array(); $json_input['image'] = get_the_post_thumbnail( $post->ID, 'medium' ); $json_input['excerpt'] = get_the_excerpt(); $json_input['content'] = get_the_content(); $json_input['title'] = get_the_title(); // Now, we should reset the post data to avoid conflict wp_reset_postdata(); // Our data is ready to be encoded, just, DO IT! $json = json_encode($json_input); 

Однако вы можете установить вывод get_post() для возврата массива, изменив второй аргумент:

 get_post( $post_id, ARRAY_A );