• Для получения атрибутов изображения загруженного через произвольное поле, написал такое,работает, но возможно есть способ прощще, которого я не знаю, без лишних запросов.

    function get_attachment_id_attr( $img_url ) {
    		global $wpdb;
    		$table  = $wpdb->prefix . 'posts';
    		$attachment_id = $wpdb->get_var(
            $wpdb->prepare( "SELECT ID FROM $table WHERE guid RLIKE %s", $img_url )
    		);
    		$attr = array(
    			'alt' => trim(strip_tags( get_post_meta($attachment_id, '_wp_attachment_image_alt', true) )),
    			'title' => get_the_title($attachment_id)
    		);
    
    		return $attr;
    	}

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Без лишних запросов можно было бы обойтись, если бы вместе с URL изображения в произвольных полях хранился и ID.

    На поле guid лучше не ориентироваться, его значение в будущем может быть изменено: https://core.trac.wordpress.org/ticket/6492.

    Я бы использовал WP_Query вместо прямого запроса: http://pastebin.com/YffpksCV.

    Спасибо, про guid не знал, ссылка сильно полезная.

    WP_Query намеренно не пользовал в этом случае, всегда казалось, что из базы напрямую взять быстрее, однако потестил ваш вариант, разницы в скорости нет никакой нет никакой.

    Еще раз спасибо.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Получение атрибутов изображения по URL (2 Sergey Biryukov)» закрыта для новых ответов.