以下是另外两种可能适合您的情况,也可能不适合您的情况:
方法#1
以300x200尺寸为例:
https://example.tld/wp-content/2017/03/vatnajokull-300x200.jpg
下面是一种方法,我们可以检查它是否真的是媒体库的一部分:
将-\\d+x\\d+
从文件名中删除,使其成为:
$url = \'https://example.tld/wp-content/2017/03/vatnajokull.jpg\';
使用核心
$attachment_id = attachment_url_to_postid( $url )
函数获取可能的附件ID。
使用第2部分中的附件ID。要获取元数据,请使用$meta = wp_get_attachment_metadata( $attahcment_id )
包含所有生成的图像大小。它获取_wp_attachment_metadata
元值检查300x200
大小是通过窥视大小元数据数组(即。$meta[\'sizes\']
) 和例如。file_exists( $path )
确保它确实存在希望您能填写缺失的部分;-)
方法#2
核心使用通配符
LIKE
在上搜索
_wp_attachment_metadata
元值,在
wp_delete_attachment()
(
source), 删除之前,查看其他附件是否将其用作拇指。这可以在这里工作,但由于它在序列化数组中搜索,因此精确度较低。核心部分如下所示:
if ( ! $wpdb->get_row(
$wpdb->prepare(
"SELECT meta_id FROM $wpdb->postmeta
WHERE meta_key = \'_wp_attachment_metadata\'
AND meta_value LIKE %s
AND post_id <> %d",
\'%\' . $wpdb->esc_like( $meta[\'thumb\'] ) . \'%\',
$post_id
)
) ) {