Функция GET_POST_EMBED_URL() в WordPress: Руководство и примеры использования

Функция GET_POST_EMBED_URL() в WordPress

Функция get_post_embed_url() используется для получения URL-адреса для встраивания определённого поста в iframe. Это может быть полезно, когда вы хотите показать свой контент на других сайтах или страницах.

Как это работает

Функция извлекает URL-адрес поста и добавляет к нему фрагмент "embed", который указывает на то, что пост должен быть встроен.

Краткая информация

  • Версия WordPress: 4.4.0
  • Использует: get_permalink()
  • Возвращает: Строку с URL-адресом поста для встраивания или false, если поста не существует.

Аргументы функции

get_post_embed_url( $post );
  • $post (int|WP_Post): ID поста или объект поста. Если не указан, будет использоваться текущий пост.

Примеры использования

Пример 1: Получение URL для поста

echo get_post_embed_url( 1 );
// вывод: http://example.com/post-name/embed

Этот код вернет URL-адрес для встраивания поста с ID 1. Например, это может быть что-то вроде http://example.com/my-post/embed.

Пример 2: Встраивание контента

Предположим, у вас есть статья на сайте, и вы хотите встроить её. Допустим, URL вашей статьи следующий: https://example.com/my-article. После применения функции, встраивание может выглядеть так:

Этот код будет отображать вашу статью как встроенный блок на другой странице.

Важный момент

Функция get_post_embed_url() использует фильтр post_embed_url. Вы можете изменить URL встраивания, добавив собственные функции фильтрации.

add_filter( 'post_embed_url', 'custom_post_embed_url', 10, 2 );
function custom_post_embed_url( $embed_url, $post ) {
    // Ваш код для изменения embedding URL
    return $embed_url;
}

Код функции

Ниже представлен исходный код функции get_post_embed_url():


function get_post_embed_url( $post = null ) {
$post = get_post( $post );

if ( ! $post ) {
    return false;
}

$embed_url = trailingslashit( get_permalink( $post ) ) . user_trailingslashit( 'embed' );
$path_conflict = get_page_by_path( str_replace( home_url(), '', $embed_url ), OBJECT, get_post_types( array( 'public' => true ) ) );

if ( ! get_option( 'permalink_structure' ) || $path_conflict ) {
    $embed_url = add_query_arg( array( 'embed' => 'true' ), get_permalink( $post ) );
}

/**
 * Фильтрует URL для встраивания конкретного поста.
 *
 * @since 4.4.0
 *
 * @param string  $embed_url URL для встраивания поста.
 * @param WP_Post $post      Соответствующий объект поста.
 */
return sanitize_url( apply_filters( 'post_embed_url', $embed_url, $post ) );

}

Заключение

Функция get_post_embed_url() — это полезный инструмент для разработчиков и пользователей WordPress, который упрощает процесс встраивания постов. Вы можете легко получить URL-адрес для встраивания и использовать его на других сайтах или встраивать в другие элементы вашего контента.

Leave a Reply

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