Получение HTML-кода для встраивания поста в WordPress
Функция get_post_embed_html() позволяет получить код для встраивания конкретного поста в других веб-страницах.
Использование функции
Синтаксис
get_post_embed_html( $width, $height, $post );
- $width (int) (обязательно) — Ширина для ответа.
- $height (int) (обязательно) — Высота для ответа.
- $post (int|WP_Post) — Идентификатор поста или объект поста. По умолчанию используется глобальная переменная
$post.
Пример использования
Вот пример, как можно получить HTML-код для встраивания поста с идентификатором 1, шириной 400 пикселей и высотой 250 пикселей:
echo get_post_embed_html( 400, 250, 1 );
Ожидаемый результат
В результате выполнения этого кода вы получите следующий HTML-код:
Как работают хуки в WordPress (фильтры и события)
И вот как этот пост будет выглядеть на странице:
Как работают хуки в WordPress (фильтры и события)
Примечание о функции
Возвращаемое значение
- Функция возвращает строку с кодом для встраивания, если пост существует.
- Если поста не существует, функция вернет false.
Подробности о работе функции
Вот краткое описание того, что происходит внутри функции:
- Получение поста: Функция сначала получает объект поста по переданному идентификатору или объекту.
- Проверка существования поста: Если пост не существует, функция возвращает false.
- Генерация секрета: Создается случайная строка (секрет), которая используется для защиты встраивания.
- Формирование HTML-кода: Код формируется с использованием
и
- Загрузка скрипта: В конце файл с необходимым JavaScript добавляется для обработки встраиваемого элемента.
Важные фильтры
Функци�� также использует фильтр embed_html, который позволяет другим разработчикам изменять вывод HTML-кода для встроенного контента.
Пример кода функции
Вот как выглядит код функции get_post_embed_html():
function get_post_embed_html( $width, $height, $post = null ) {
$post = get_post( $post );
if ( ! $post ) {
return false;
}
$embed_url = get_post_embed_url( $post );
$secret = wp_generate_password( 10, false );
$embed_url .= "#?secret={$secret}";
$output = sprintf(
'%3$s
',
esc_attr( $secret ),
esc_url( get_permalink( $post ) ),
get_the_title( $post )
);
$output .= sprintf(
'',
esc_url( $embed_url ),
absint( $width ),
absint( $height ),
esc_attr(
sprintf(
__( '“%1$s” — %2$s' ),
get_the_title( $post ),
get_bloginfo( 'name' )
)
),
esc_attr( $secret )
);
$output .= wp_get_inline_script_tag(
file_get_contents( ABSPATH . WPINC . '/js/wp-embed' . wp_scripts_get_suffix() . '.js' )
);
return apply_filters( 'embed_html', $output, $post, $width, $height );
}
Заключение
Функция get_post_embed_html() — мощный инструмент для разработчиков WordPress. Она позволяет легко встраивать посты на другие сайты, сохраняя ссылки и стиль оригинального контента. Если вы хотите разместить свой пост на другом сайте, вы можете использовать этот код, просто заменив идентификатор поста и размеры встраиваемого окна.