Как извлечь информацию из результата wp_query?

Задний план:

Я использую тему wordpress, называемую skt full width. Я изменяю их слайд-шоу на главной странице, так что он отображает шесть случайных изображений вместо шести предварительно выбранных изображений. У меня есть пользовательское поле на носителе, чтобы выбрать, какие изображения можно выбрать в этой лотерее, чтобы быть на первой странице. Затем есть запрос на выбор этих изображений.

В коде, который они используют для отображения изображений, требуются определенные свойства изображения для работы. Это: URL изображения, название изображения, описание изображения и изображение href.

Вопрос:

Как получить эту информацию, необходимую из медиа / вложения, когда она находится в запросе? Нужно ли мне использовать их код вставки или это лучший способ выполнить то, что я хочу?

Код для показа изображения:

echo '{image : \''.$imgUrl.'\', title : \'<div class="slide-title"><span>'.( ($imgHref!='' && $imgTitle!='') ? '<a href="'.$imgHref.'">' : '').$imgTitle.( ($imgHref!='' && $imgTitle!='') ? '</a>' : '').'</span></div><div class="slide-description"><span>'.$imgDesc.'</span></div>'.( ($imgHref != '') ? '<div class="slide-description"><span><a href="'.$imgHref.'">Read More &rsaquo;</a></span></div>' : '').'\', thumb : \''.$imgUrl.'\', url : \'\'},'."\n"; 

Мой код:

 $args = array( 'post_type' => 'attachment', 'meta_key' => 'on_front_page', 'meta_value' => '1', 'orderby' => 'rand', 'posts_per_page' => 6 , 'max_num_pages' => 1, ); $slides = new WP_Query($args); $total_images = (int) $slides->found_posts; while( $slides->have_posts() ) { echo '{image : \''.$imgUrl.'\', title : \'<div class="slide-title"><span>'.( ($imgHref!='' && $imgTitle!='') ? '<a href="'.$imgHref.'">' : '').$imgTitle.( ($imgHref!='' && $imgTitle!='') ? '</a>' : '').'</span></div><div class="slide-description"><span>'.$imgDesc.'</span></div>'.( ($imgHref != '') ? '<div class="slide-description"><span><a href="'.$imgHref.'">Read More &rsaquo;</a></span></div>' : '').'\', thumb : \''.$imgUrl.'\', url : \'\'},'."\n"; } 

Solutions Collecting From Web of "Как извлечь информацию из результата wp_query?"

Ниже вы начинаете после запроса:

 $slide_list = array(); if ( $slides->have_posts() ) { while ( $slides->have_posts() ) { 

Возьмите следующий слайд, используя next_post, чтобы захватить его без топания глобалов

  $slide = $slides->next_post(); $slide_id = $slide->ID; 

Название вашего изображения – ваше сообщение:

  $slide_title = $slide->post_title; 

Ваш href – это ваша постоянная ссылка

  $slide_href = get_permalink( $slide ); 

Ваше описание – ваше сообщение или выдержка

  $slide_content = $slide->post_content; $slide_excerpt = $slide->post_excerpt; 

Если вы хотите ширину и высоту, вы можете получить следующее:

  $image_data = wp_get_attachment_image_src( $slide_id, 'thumbnail'); $image_url = $image_data[0]; $width = $image_data[1]; $height = $image_data[2]; # do something here ... $slide_list[] = array( 'id' => $slide_id, 'title' => $slide_title, 'href' => $slide_href, 'content' => $slide_content, 'image_w' => $width, 'image_h' => $height ); } } 

Надеюсь, это поможет!

Главное – просто пройти через них.

Если вы хотите просмотреть все доступные данные, используйте следующий вид:

 echo "<pre>" . print_r($slide, true) . "</pre>"; 

Это должно показать вам все возвращенные поля для каждого слайда.