画像のURLを取得して、データベース内でその画像の添付ファイルまたは投稿IDを見つける方法はありますか?
状況は次のとおりです。
私は、投稿コンテンツで「a」タグに囲まれているすべての「img」タグを巡回しています。「img」タグのsrc属性が外側の「a」タグのhref属性と一致しない場合、「img」タグを置き換えたいと思います。これを行う際に、削除する「img」がギャラリーにある場合、その投稿を削除してから、代わりの「img」をその場所に配置します。私はこのような関数を使用してみました:
function find_image_post_id($url) {
global $wpdb;
$postid = $wpdb->get_var($wpdb->prepare("SELECT DISTINCT ID FROM $wpdb->posts WHERE guid='$url'"));
if ($postid) {
return $postid;
}
return false;
}
皮肉なことに皮肉なことにグローバルに一意ではないため、これは明らかに正しくありません。私は(以前の同じスクリプトで)同じ名前のファイルをアップロードしていました(なぜですか?高解像度で同じ画像の低解像度バージョンを置き換えようとしているためです)が、wordpressは別の名前で画像を保存しますがディレクトリ、GUIDは同じに設定されました。(おそらくバグ)。
私が使用できる別のテクニックはありますか?