是否可以确定用户何时在“Media”>“Add New”与“Post>Add an Image”之间

时间:2011-01-25 作者:Scott B

我想将下面的过滤器包装成一个条件,测试用户是否从媒体管理器(Admin>Media>Add New)而不是从post editor图像上载例程上载图像。

有可能知道吗$pagenow在这两种情况下似乎是相同的。。。

//no extra thumbs
global $pagenow;
if($pagenow=="media-new.php"){
add_filter(\'intermediate_image_sizes_advanced\',\'ce4_no_thumbs\');
}
function ce4_no_thumbs($sizes){return array();}
更新:当从帖子中访问上传时,查询字符串上似乎有一个post\\u id,而不是通过“media manager>add new”访问时,但是,在任何一种情况下,以下测试都会通过。。。

if ( is_admin() && !isset($_GET[\'post_id\']) ) {
    /*This should not fire if user is uploading an image into a post, 
      since post_id is on the querystring. However, in my test
      its still getting through.*/

add_filter(\'intermediate_image_sizes_advanced\',\'ce4_no_thumbs\');
}

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

我在的评论中为您回答了这个问题your previous question.

。。。您可以使用上面@Backie建议的过滤器(intermediate_image_sizes_advanced), 在挂钩函数中,检查post集合中名为wp\\uhttp\\ureferer的字段。它告诉您上传请求来自何处。

如果\\u wp\\u http\\u referer包含“media new.php”,则可以返回一个空数组(这将暂时停止缩略图生成,但实际上不会更改任何缩略图设置)。否则,请原封不动地返回$sizes数组。

尝试:

function wpsx_7756_no_thumbnails($arr_sizes){

    if(stristr($_POST[\'_wp_http_referer\'], \'media-new.php\')) {
        return array();
    }

    return $arr_sizes;

}

add_filter(\'intermediate_image_sizes_advanced\',\'wpsx_7756_no_thumbnails\');
让我知道这是否有效。

请记住,在上载表单上添加过滤器并不能满足您的需要,表单会发布到处理上载的单独页面,并且不会尊重您的过滤器。

SO网友:rexposadas

您可以尝试使用$\\u GET[\'post\']而不是使用$\\u GET[\'post\\u id\']吗?

这就是我看到的请求参数。

结束

相关推荐