Intereting Posts
Как сделать пользователя неактивным по умолчанию во время регистрации? apply_filters с несколькими аргументами и несколькими add_filter Путаница в отношении того, как URL-адрес анализируется Можно ли сортировать сообщение на основе пользовательского поля? wp_loaded со статическим синглтоном Вход на WordPress MultiSite на соответствующий сайт Фильтры post в admin с выпадающим меню, пользовательский тип сообщения Как добавить изображения в сообщение, не вставляя их в область содержимого редактора сообщений? Не получил ничего после выполнения функции AJAX post Почему две функции перебегают друг к другу? Получать случайный пост-пост-пост для отображения в контенте Не удается решить, почему содержимое виджета исчезает из admin Как работать с настраиваемыми стилями, сохраненными в опции темы? Элемент формы удален из первой строки WP_Lists_Table Кнопка не обновляющая страница

Как получить идентификатор или URL-адрес изображения в сообщении изображения?

У меня есть куча сообщений с изображениями, и я бы хотел получить идентификатор этих изображений, я не установил изображение, чтобы я мог использовать wp_get_attachment_image_src() чтобы получить URL-адреса различных размеров этих изображений.

Это то, что я создал:

 $img_posts = get_posts( array( 'tax_query' => array( array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => 'post-format-image', 'operator' => 'IN' ) ) ) ); foreach( (array) $img_posts as $post ) { setup_postdata( $post ); $imgID = get_img_id(); //img sources $thumb = wp_get_attachment_image_src($imgID, 'thumb'); $reg = wp_get_attachment_image_src($imgID, 'large'); $big = wp_get_attachment_image_src($imgID); } 

Функция get_img_id на шестом, которая, вероятно, является источником всех моих проблем, выглядит следующим образом:

 function get_img_id() { global $post; $id = intval( $post->ID ); $imgID = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'numberposts' => 1 ) ); return $imgID; } 

Когда я это делаю, я не получаю никаких ошибок или результатов. Если я добавлю что-то вроде the_content в массив, он будет функционировать должным образом.

ОБНОВЛЕНИЕ: По предложению @ TheDeadMedic я пробовал это:

 $img_posts = get_posts( array( 'cat' => '2', 'tax_query' => array( array( 'taxonomy' => 'post_format', 'field' => 'slug', 'terms' => 'post-format-image', 'operator' => 'IN' ) ) ) ); foreach( (array) $img_posts as $post ) { setup_postdata( $post ); $img_id = get_img_id(); var_dump ($img_id); } 

Это вернулось

 array empty 

Один раз за сообщение.

Solutions Collecting From Web of "Как получить идентификатор или URL-адрес изображения в сообщении изображения?"

Потому что $imgID – это массив объектов post. Вместо:

 return $imgID; 

Тебе нужно:

 return $imgID ? key( $imgID ) : 0; 

Поскольку get_children возвращает массив сообщений, индексированных по их идентификатору, вы можете просто использовать key чтобы вернуть значение первого.