我想将下面的过滤器包装成一个条件,测试用户是否从媒体管理器(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\');
}
最合适的回答,由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\');
让我知道这是否有效。
请记住,在上载表单上添加过滤器并不能满足您的需要,表单会发布到处理上载的单独页面,并且不会尊重您的过滤器。