Функция IS_LOCAL_ATTACHMENT() в WordPress: описание, примеры использования, работающий код

Функция 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; // Не вложение

}

Что здесь происходит:

  1. Проверка на локальность: Сначала функция проверяет, содержит ли URL адрес сайта. Если нет, возвращает false.
  2. Проверка на ID вложения: Если URL содержит строку /?attachment_id=, функция возвращает true.
  3. Получение данных о посте: Функция пытается найти 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!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *