На основе примера кода Maor H. вот функция, которую я использую в своих плагинах:
/**
* Check if an item exists out there in the "ether".
*
* @param string $url - preferably a fully qualified URL
* @return boolean - true if it is out there somewhere
*/
function webItemExists($url) {
if (($url == '') || ($url == null)) { return false; }
$response = wp_remote_head( $url, array( 'timeout' => 5 ) );
$accepted_status_codes = array( 200, 301, 302 );
if ( ! is_wp_error( $response ) && in_array( wp_remote_retrieve_response_code( $response ), $accepted_status_codes ) ) {
return true;
}
return false;
}
Я сделал этот метод в классе помощника, однако, поместив его в файл functions.php вашей темы, он должен быть доступен везде. Однако вы всегда должны писать в классах и создавать их экземпляры. Это намного лучше для изоляции вашего плагина и функциональности темы.
С этим на месте вы можете просто использовать:
if (webItemExists ('http://myurl.com/thing.png')) {напечатать' он существует);}
Чаще всего вы будете использовать вызовы WordPress для доступа ко всем элементам через относительный или полностью определенный URL. Если у вас есть относительная ссылка на что-то, например /uploads/2012/12/myimage.png, вы можете преобразовать их в полностью определенный URL-адрес относительно относительного URL-адреса WordPress, просто добавив get_site_url (). $ string при вызове функции webItemExists.