Функция 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-адрес для встраивания и использовать его на других сайтах или встраивать в другие элементы вашего контента.