WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

is_local_attachment() WP 2.0.0

Является ли переданный URL страницей вложения (файла медиатеки WordPress) текущего сайта.

Работает на основе: url_to_postid()
✈ 1 раз = 0.001947с = очень медленно | 50000 раз = 80.64с = очень медленно | PHP 7.0.5, WP 4.4.2

Хуков нет.

Возвращает

True/false.

Использование

if( is_local_attachment( $url ) ){
	// это файл из медиатеки WordPress
}
$url(строка) (обязательный)
URL, который нужно проверить.

Примеры

#1 Проверим URL - вложение ли это

Допустим, у нас есть ссылка на файл который находится в медиатеке wordpress: http://example.com/wp-content/uploads/2016/03/import.png и у этого файл также есть своя страница во фронте: http://wp-kama.ru/import:

is_local_attachment('http://example.com/wp-content/uploads/2016/03/import.png'); //> false

is_local_attachment('http://example.com/import'); //> true

// несуществующий файл
is_local_attachment('http://example.com/fooo'); //> false

Список изменений

С версии 2.0.0 Введена.

Код is local attachment: wp-includes/post.php WP 5.3

<?php
function is_local_attachment( $url ) {
	if ( strpos( $url, home_url() ) === false ) {
		return false;
	}
	if ( strpos( $url, home_url( '/?attachment_id=' ) ) !== false ) {
		return true;
	}

	$id = url_to_postid( $url );
	if ( $id ) {
		$post = get_post( $id );
		if ( 'attachment' == $post->post_type ) {
			return true;
		}
	}
	return false;
}

Cвязанные функции

Из метки: Условные теги (все)

Еще из раздела: Вложения (media файлы)

Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться