忽略媒体库上的筛选器

时间:2015-11-25 作者:SinisterBeard

根据我的question yesterday, 我需要从大多数WordPress查询中排除所有图像-昨天,我想我需要从所有查询中排除它们,直到我遇到以下问题。

使用以下过滤器排除图像也会将其从媒体库中排除,包括“插入媒体”对话框。

function remove_images($where) {
    global $wpdb;
    $where.=\' AND \'.$wpdb->posts.\'.post_mime_type NOT LIKE \\\'image/%\\\'\';
    return $where;
}
我仍然希望能够在媒体库中查看图像并插入媒体对话框。

通常,我可以if (!is_admin()) 子句,因为媒体库通常位于管理部分。

However, 我还有一个wp_editor 在前端,允许我的用户快速添加帖子,您也可以从那里访问媒体库。

是否有任何挂钩或条件可供我使用,以便在查询媒体库时不包括过滤器?

1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

您可以使用is_admin() 与admin全局变量一起使用$pagenow 要确保您不在上载或媒体页面上,请执行以下操作:

function remove_images( $where ) {
    global $wpdb,
        $pagenow;

    if( is_admin() && in_array( $pagenow, array( \'upload.php\', \'media-upload.php\' ) ) {
        return $where
    }

    $where  .=  " AND {$wpdb->posts}.post_mime_type NOT LIKE \'image/%\'";
    return $where;
}

相关推荐

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

如何创建一个画廊页面,它是一个画廊的画廊-使用子画廊中的特定照片作为相册的封面?这就是我目前所拥有的。我在后端有一个使用WP Media folder构建的文件夹,名为master. 我想在图库页面中列出master 以及缩略图所属库的名称。这是我的。$galleries = get_terms( \'wpmf-gallery-category\', [ \'hide_empty\' => 0 ]); foreach ( $galleries as $gal )