2016-11-25 16 views
1

類似の質問に対するいくつかの回答があるようですが、まだ私のために働いているものは見つかりませんでした。タクソノミーのギャラリーから画像を取得

私はと呼ばれるカスタムポストタイプを持っています。 entertainementにはent_categoriesというタクソノミがあります。 ent_categories

一つは各EventギャラリーがありEvent

と呼ばれ、私は、カテゴリEventとCPT entertainmentのいずれかに追加された最新の10枚の画像を返しますクエリを作成しようとしています。

私は配列のURLのリストを受け取ろうとしています。

$arg = array(
    'post_status' => 'inherit', 
     'posts_per_page' => -1, 
     'post_type' => 'attachment', 
); 


$arg['tax_query'] = array(
array(
    'taxonomy' => 'ent_categories', 
    'field' => 'name', 
    'terms' => array('Event'), 

), 
); 

$the_query = new WP_Query($arg); 
var_dump($the_query); 

var_dump($the_query);ディスプレイの事が、ありません画像がたくさん:私はトリックを行う必要があり、ここでこのような何かを読んだものから、

? これに関するヒント? はあなたに

EDITありがとう:

私はちょうど私がこれを行うことができますことを見た:

function pw_show_gallery_image_urls($content) { 
    global $post; 
    // Only do this on singular items 
    if(! is_singular()) 
     return $content; 
    // Make sure the post has a gallery in it 
    if(! has_shortcode($post->post_content, 'gallery')) 
     return $content; 
    // Retrieve all galleries of this post 
    $galleries = get_post_galleries_images($post); 
    $image_list = '<ul>'; 
    // Loop through all galleries found 
    foreach($galleries as $gallery) { 
     // Loop through each image in each gallery 
     foreach($gallery as $image) { 
      $image_list .= '<li>' . $image . '</li>'; 
     } 
    } 
    $image_list .= '</ul>'; 
    // Append our image list to the content of our post 
    $content .= $image_list; 
    return $content; 
} 
add_filter('the_content', 'pw_show_gallery_image_urls'); 

この結果という点で、すべてのギャラリー画像のURLは、ギャラリー内の画像の下に表示されます。 この関数はfunctions.phpではなくページから呼び出すことができますか?

+0

あなたはどういう意味ですか?それぞれの 'Event'にはgallery_がありますか? ACFのGallery Fieldを意味しますか? –

+0

お返事ありがとうございます。いいえ、ACF galleryfieldではありません。ギャラリーは、 "標準"のワードプレスギャラリーを使用してショートコードとして追加されます – eggman

答えて

1

あなたは正しい軌道に乗っていたが、あなたが唯一のentertainementポストに適用されるent_categories分類のtermと種類attachmentの記事を照会している、もしそうなら、あなたが表示されますと、それらのいずれかがありません。あなた:

var_dump($the_query->posts); 

あなたはすべての$the_queryをダンプする場合、それはWP_Queryオブジェクトだから、あなたは物事のたくさん表示されます。

あなたのentertainement投稿を照会する必要があります(あなたのスラグのタイプミスを持っているのでは注意してください!)

$arg = array(
    'posts_per_page' => -1, 
    'post_type'  => 'entertainement', 
); 


$arg['tax_query'] = array(
    array(
     'taxonomy' => 'ent_categories', 
     'field' => 'name', 
     'terms' => 'Event', 

    ), 
); 

$the_query = new WP_Query($arg); 

次にあなたが投稿を反復処理し、このようなギャラリーアイテムを取得することができます。

if ($the_query->have_posts()) { 
    while ($the_query->have_posts()) { 
     $the_query->the_post(); 
     if (get_post_gallery()) : 
      echo get_post_gallery(); 
      print_r(get_post_gallery_images()); 
     endif; 
    } 
    /* Restore original Post Data */ 
    wp_reset_postdata(); 
} 

get_post_gallery_images()あなたのURLのギャラリー画像の

の配列を取得します

get_post_gallery()実際のHTMLがギャラリーを印刷します。

+0

実用的なソリューションと素晴らしい説明をありがとう! – eggman

関連する問題