Функция IS_LOCAL_ATTACHMENT() в WordPress
Функция IS_LOCAL_ATTACHMENT() помогает определить, является ли URL локальной привязкой (attachment) и действительно ли это вложение. Давайте подробнее разберем, как она работает.
Описание функции
Функция проверяет следующий момент:
- Является ли указанный URL адресом на вашем сайте.
- Является ли этот URL адресом, ссылающимся на конкретное вложение.
Возврат значения
Функция возвращает:
true— если URL является локальным вложением,false— если это не так.
Использование функции
Синтаксис функции:
is_local_attachment( $url );
- $url (строка) — обязательный параметр. URL, который нужно проверить.
Примеры использования
Подробно рассмотрим, как использовать эту функцию на практике.
Пример 1: Проверка URL вложения
Предположим, у нас есть ссылка на файл в медиабиблиотеке WordPress:
http://example.com/wp-content/uploads/2016/03/import.png
И у этого файла есть своя страница на сайте:
http://example.com/import
Теперь мы можем проверить оба URL:
is_local_attachment( 'http://example.com/wp-content/uploads/2016/03/import.png' ); // вернет false
is_local_attachment( 'http://example.com/import' ); // вернет true
Пример 2: Проверка несуществующего файла
Если файл не существует, функция также вернет false:
is_local_attachment( 'http://example.com/fooo' ); // вернет false
Как работает функция?
Вот код функции is_local_attachment():
function is_local_attachment( $url ) {
if ( ! str_contains( $url, home_url() ) ) {
return false; // URL не на данном сайте
}
if ( str_contains( $url, home_url( '/?attachment_id=' ) ) ) {
return true; // Этот URL ссылается на вложение
}
$id = url_to_postid( $url ); // Получаем ID поста по URL
if ( $id ) {
$post = get_post( $id ); // Получаем данные о посте
if ( 'attachment' === $post->post_type ) {
return true; // Это вложение
}
}
return false; // Не вложение
}
Что здесь происходит:
- Проверка на локальность: Сначала функция проверяет, содержит ли URL адрес сайта. Если нет, возвращает
false. - Проверка на ID вложения: Если URL содержит строку
/?attachment_id=, функция возвращаетtrue. - Получение данных о посте: Функция пытается найти ID поста по URL. Если он найден, проверяется, является ли пост вложением.
Итоги
Функция is_local_attachment() — это полезный инструмент для работы с вложениями в WordPress. Она позволяет легко проверять, принадлежит ли указанный URL вашему сайту и является ли он вложением. Используйте её для оптимизации работы с медиафайлами!
Связанные функции
Функция is_local_attachment() работает в связке с другими функциями WordPress, связанными с условными тегами и медиафайлами. Вот некоторые из них:
url_to_postid()get_post()get_children()wp_get_attachment_url()
Теперь вы знаете, как эффективно использовать функцию is_local_attachment() в вашем проекте WordPress!