如何使用分类法获取图像(WP Media文件夹)

时间:2018-06-20 作者:Dan

如何创建一个画廊页面,它是一个画廊的画廊-使用子画廊中的特定照片作为相册的封面?

这就是我目前所拥有的。

我在后端有一个使用WP Media folder构建的文件夹,名为master. 我想在图库页面中列出master 以及缩略图所属库的名称。

这是我的。

$galleries = get_terms( \'wpmf-gallery-category\', [ \'hide_empty\' => 0 ]);

    foreach ( $galleries as $gal )
    {
        if ( $gal->name != \'master\' )
        {
        ?>
            <div id="gallery-id-<? $gal->ID ?>" class="cell medium-3 margin-x text-center" style="border: solid black; ">
                    <figure class="cell">
                        <img src="<?= // Get sub-gallery thumbnail ?>" alt="<?= $gal->name?>">
                    </figure>
                    <div class="detail">
                        <span>
                            <?= $gal->name ?>
                        </span>
                    </div>
            </div>
        <?
        }
     }
我想问题是,如何按图像所在的文件夹访问图像?我不知道WP Media文件夹如何链接到图像。我需要能够查询并从gallery元素id获取图像SRC。

2 个回复
SO网友:Dan

我为此创建了一个自定义函数,但如果需要根文件夹id,可以使用wp cli 并使用命令wp term list wpmf-gallery-category 显示所有库文件夹。获取要用作根的术语id,并将其设置为$master\\u id

/*
   get_root_gallery_id();
   Custom function that returns the id of folder with parent id == 0
*/
$master_id = get_root_gallery_id( \'master\' );
$galleries = get_terms( \'wpmf-gallery-category\', [ \'hide_empty\' => 0 ]);

            // If there is a root folder
            if ( $master_id )
            {
                foreach ( $galleries as $gal )
                {
                    if ( $gal->parent == $master_id )
                    {
                        $args = [
                            \'post_type\'      => \'attachment\',
                            \'posts_per_page\' => -1,
                            \'post_status\'    => \'inherit\'

                            \'tax_query\'      => [
                                [
                                    \'taxonomy\' => \'wpmf-gallery-category\',
                                    \'terms\'    => [ $gal->term_id ],
                                    \'field\'    => \'term_id\'
                                ]
                            ]
                        ];

                        $query = new WP_Query( $args );

                        if ( $query->have_posts() )
                        {
                            while ( $query->have_posts() )
                            {

                                $query->the_post();

                                global $post; // Image as Post Object
                            }
                        }
                    }
                }
            }

SO网友:Lisa Baird

我们使用2个插件来实现这一点,无需编程,好处是我们不必担心每3个月更新一次代码。。。缺点显而易见。。。MLA Library(媒体库助理,我想是实际名称)和Content Views Pro,由PT Guy提供。我不记得免费的让你过滤媒体了。

结束