如果媒体库的宽度小于100px,我想阻止用户从媒体库中设置特色图像。原来我想用ajax_query_attachments_args
过滤器,但它会过滤WP_Query()
无法有效用于此目的的对象,因为meta_query
\'smeta_key
—这是_wp_attachment_metadata
—包含序列化数据。这就是我目前正在尝试的:
function restrict_media_library_by_width($response, $attachment, $meta) {
if(isset($response[\'width\']) && isset($response[\'height\']) && $response[\'width\'] >= 100) {
return $response;
}
return false;
}
add_filter(\'wp_prepare_attachment_for_js\', \'restrict_media_library_by_width\', 10, 3);
我看到的结果是,媒体库模式弹出,加载一个“空”缩略图,AJAX加载程序继续断断续续地出现和消失:
但是,如果我将if语句中的最后一个条件更改为使用==
而不是>=
然后,它似乎像预期的那样工作for certain values:
function restrict_media_library_by_width($response, $attachment, $meta) {
if(isset($response[\'width\']) && isset($response[\'height\']) && $response[\'width\'] == 100) {
return $response;
}
return false;
}
add_filter(\'wp_prepare_attachment_for_js\', \'restrict_media_library_by_width\', 10, 3);
这并不总是奏效,但我怀疑我在这里遗漏了什么。有人能解释一下吗?谢谢