媒体库-将图像限制为自定义帖子类型

时间:2015-04-01 作者:BillyMedia

是否有一些wordpress魔术/插件可以使媒体库只显示上传到特定自定义帖子类型的图像?我有一个名为“艺术家”的自定义帖子类型,我希望在管理员单击上载/附加图像时,媒体库弹出窗口仅显示已上载到艺术家自定义类型的图像,而不是整个网站。

我使用ACF插件来处理自定义字段和自定义帖子类型ui。这可能吗?

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

我不能百分之百确定我是否正确地解决了你的问题,但是。。。也许这会帮助你。。。

媒体上载程序通过简单WP_Query, 因此,您可以使用许多过滤器来修改其内容。

唯一的问题是,您无法使用WP_Query 参数。。。因此,我们必须使用posts_whereposts_join 过滤器。

为了确保只更改媒体上传器的查询,我们将使用ajax_query_attachments_args.

这就是它在组合时的外观:

function my_posts_where($where) {
    global $wpdb;

    $post_id = false;
    if ( isset($_POST[\'post_id\']) ) {
        $post_id = $_POST[\'post_id\'];

        $post = get_post($post_id);
        if ( $post ) {
            $where .= $wpdb->prepare(" AND my_post_parent.post_type = %s ", $post->post_type);
        }
    }

    return $where;
}

function my_posts_join($join) {
    global $wpdb;

    $join .= " LEFT JOIN {$wpdb->posts} as my_post_parent ON ({$wpdb->posts}.post_parent = my_post_parent.ID) ";

    return $join;
}


function my_bind_media_uploader_special_filters($query) {
    add_filter(\'posts_where\', \'my_posts_where\');
    add_filter(\'posts_join\', \'my_posts_join\');

    return $query;
}
add_filter(\'ajax_query_attachments_args\', \'my_bind_media_uploader_special_filters\');
当您在编辑帖子(帖子/页面/CPT)时打开“媒体上传器”对话框时,您将只看到附加到此特定帖子类型的图像。

如果您希望它只适用于一种特定的帖子类型(比如页面),则必须在中更改条件my_posts_where 功能如下:

function my_posts_where($where) {
    global $wpdb;

    $post_id = false;
    if ( isset($_POST[\'post_id\']) ) {
        $post_id = $_POST[\'post_id\'];

        $post = get_post($post_id);
        if ( $post && \'page\' == $post->post_type ) {  // you can change \'page\' to any other post type
            $where .= $wpdb->prepare(" AND my_post_parent.post_type = %s ", $post->post_type);
        }
    }

    return $where;
}

SO网友:A.Azzam

编辑特征图像时仅显示属性的图像

function my_bind_media_uploader_special_filters($query) 
{

    add_filter(\'posts_where\', \'my_posts_where\');
    return $query;
}

add_filter(\'ajax_query_attachments_args\',\'my_bind_media_uploader_special_filters\');

function my_posts_where ($where) 
{

    global $wpdb;
    $post_id = false;
    if ( isset($_POST[\'post_id\']) ) {
        $post_id = $_POST[\'post_id\'];
        $post = get_post($post_id);
        if ( $post && \'property\' == $post->post_type) {
            $where .= $wpdb->prepare(" AND id in (select distinct meta_value from 
            wpdb_postmeta where meta_key=\'fave_property_images\' and post_id = $post_id)", 
            $post->post_type);
        }
    }
    return $where;
}

结束

相关推荐

JQuery Plugins in Wordpress

我已经能够在某种程度上拼凑出应该如何做到这一点,但我真的很难做到这一点。我想使用Table Sorter插件(http://tablesorter.com) 在自定义页面模板中显示数据,但我不确定它是否正确。我已经钩住了“wp\\u enqueue\\u scripts”,并使用此函数将表分类器JS文件排入队列。我相信这是正确的,但是我还需要在JQuery Ready()函数中放置一行,但是我不确定如何从自定义页面模板中执行此操作。有人能解释一下吗?<?php /* Templat

媒体库-将图像限制为自定义帖子类型 - 小码农CODE - 行之有效找到问题解决它

媒体库-将图像限制为自定义帖子类型

时间:2015-04-01 作者:BillyMedia

是否有一些wordpress魔术/插件可以使媒体库只显示上传到特定自定义帖子类型的图像?我有一个名为“艺术家”的自定义帖子类型,我希望在管理员单击上载/附加图像时,媒体库弹出窗口仅显示已上载到艺术家自定义类型的图像,而不是整个网站。

我使用ACF插件来处理自定义字段和自定义帖子类型ui。这可能吗?

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

我不能百分之百确定我是否正确地解决了你的问题,但是。。。也许这会帮助你。。。

媒体上载程序通过简单WP_Query, 因此,您可以使用许多过滤器来修改其内容。

唯一的问题是,您无法使用WP_Query 参数。。。因此,我们必须使用posts_whereposts_join 过滤器。

为了确保只更改媒体上传器的查询,我们将使用ajax_query_attachments_args.

这就是它在组合时的外观:

function my_posts_where($where) {
    global $wpdb;

    $post_id = false;
    if ( isset($_POST[\'post_id\']) ) {
        $post_id = $_POST[\'post_id\'];

        $post = get_post($post_id);
        if ( $post ) {
            $where .= $wpdb->prepare(" AND my_post_parent.post_type = %s ", $post->post_type);
        }
    }

    return $where;
}

function my_posts_join($join) {
    global $wpdb;

    $join .= " LEFT JOIN {$wpdb->posts} as my_post_parent ON ({$wpdb->posts}.post_parent = my_post_parent.ID) ";

    return $join;
}


function my_bind_media_uploader_special_filters($query) {
    add_filter(\'posts_where\', \'my_posts_where\');
    add_filter(\'posts_join\', \'my_posts_join\');

    return $query;
}
add_filter(\'ajax_query_attachments_args\', \'my_bind_media_uploader_special_filters\');
当您在编辑帖子(帖子/页面/CPT)时打开“媒体上传器”对话框时,您将只看到附加到此特定帖子类型的图像。

如果您希望它只适用于一种特定的帖子类型(比如页面),则必须在中更改条件my_posts_where 功能如下:

function my_posts_where($where) {
    global $wpdb;

    $post_id = false;
    if ( isset($_POST[\'post_id\']) ) {
        $post_id = $_POST[\'post_id\'];

        $post = get_post($post_id);
        if ( $post && \'page\' == $post->post_type ) {  // you can change \'page\' to any other post type
            $where .= $wpdb->prepare(" AND my_post_parent.post_type = %s ", $post->post_type);
        }
    }

    return $where;
}

SO网友:A.Azzam

编辑特征图像时仅显示属性的图像

function my_bind_media_uploader_special_filters($query) 
{

    add_filter(\'posts_where\', \'my_posts_where\');
    return $query;
}

add_filter(\'ajax_query_attachments_args\',\'my_bind_media_uploader_special_filters\');

function my_posts_where ($where) 
{

    global $wpdb;
    $post_id = false;
    if ( isset($_POST[\'post_id\']) ) {
        $post_id = $_POST[\'post_id\'];
        $post = get_post($post_id);
        if ( $post && \'property\' == $post->post_type) {
            $where .= $wpdb->prepare(" AND id in (select distinct meta_value from 
            wpdb_postmeta where meta_key=\'fave_property_images\' and post_id = $post_id)", 
            $post->post_type);
        }
    }
    return $where;
}