Взять id вложения или картинки по url — WordPress
Сегодня я расскажу об одной нестандартной задачке которую WordPress делать не умеет по умолчанию, а именно взять из базы ID картинки (или другого вложения) по ее URL. Такая задача часто бывает необходима при разработке плагинов или новых тем для WordPress.
Для начала нам понадобится функция которая сделает запрос к базе данных и получит необходимое изображение по URL.
1 2 3 4 5 6 |
// возвращает ID картинки по URL function pippin_get_image_id($image_url) { global $wpdb; $attachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid='%s';", $image_url )); return $attachment[0]; } |
Эту функцию можно положить в файл functions.php и вызвать в любом месте шаблона.
Как вызвать функцию передать URL и вернуть ID изображения
Ниже я покажу который передаст URL картинки в переименую и получит ID вложения, также ниже представлен код с помощью которого вы сможете изменить размер картинки при помощи стандартной функции WordPress wp_get_attachment_image_src().
1 2 3 4 5 6 7 8 9 10 11 |
// передаем в переменную url картинки на вашем сайте $image_url = 'https://yoursite.com/wp-content/uploads/2011/02/14/image_name.jpg'; // получаем ID картинки по URL из переменной $image_url $image_id = pippin_get_image_id($image_url); // Получаем ту же картинку по ID но с новым размером $image_thumb = wp_get_attachment_image_src($image_id, 'thumbnail'); // выводим картинку с новым размером на экран echo $image_thumb[0]; |
Хотелось бы сказать что нестоит этим злоупотреблять, так как задача выполняется неочень быстро.

/*

- Базовый курс по веб-дизайну;
- Верстка сайтов;
- Общий курс по CMS WordPress и продолжение курса по разработке шаблонов;
- Разработка сайтов на PHP.