从分类中获取图库

时间:2016-11-25 18:47:55

标签: php wordpress

似乎有几个类似问题的答案,但我还没有找到一个适合我的人。

我有一个名为entertainement的自定义帖子类型。 entertainement有一个名为ent_categories的分类。

其中一个ent_categories称为Event

每个Event都有一个图库,我正在尝试创建一个查询,该查询将返回已添加到具有类别entertainment的任何CPT Event的最新10张图片。

我希望收到一个数组中的网址列表。

从我在这里读到的内容应该是这样的:

$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);显示很多东西但没有图片? 关于这个的任何提示? 谢谢

编辑:

我刚看到我能做到这一点:

 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' );

这导致所有图库图像网址都显示在图库中的图像下方。 也许这个函数可以从一个页面而不是从functions.php?

调用

1 个答案:

答案 0 :(得分:1)

您走在正确的轨道上,但是您要查询的attachment类型的帖子term ent_categories分类只适用于entertainement帖子,所以不会有任何一个,因为你会看到你是否:

var_dump($the_query->posts);
  

如果您转储所有$the_query,那么您将会看到很多内容,因为它是WP_Query个对象。

您需要查询entertainement个帖子:( 小心,因为您的slu in中有拼写错误!

$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()会为您提供一系列图库网址

get_post_gallery()会为您提供实际的HTML来打印图库。