is_local_attachment()
Является ли переданный 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() is local attachment WP 6.7.1
function is_local_attachment( $url ) { if ( ! str_contains( $url, home_url() ) ) { return false; } if ( str_contains( $url, home_url( '/?attachment_id=' ) ) ) { return true; } $id = url_to_postid( $url ); if ( $id ) { $post = get_post( $id ); if ( 'attachment' === $post->post_type ) { return true; } } return false; }