Функция get_post_embed_html()
в WordPress позволяет получить готовый HTML-код для встраивания (oEmbed) указанной записи на другие сайты. Это удобно для демонстрации постов с вашего сайта на сторонних ресурсах через iframe.
get_post_embed_html( int $width, int $height, int|WP_Post $post = null ): string|false
get_post_embed_html()
возвращает HTML-код, который включает в себя ссылку на запись и iframe, с параметрами ширины и высоты, которые вы указываете. Если запись не существует, функция вернет false
.
Параметры
$width
(обязательный, число) — Ширина встраиваемого iframe.$height
(обязательный, число) — Высота встраиваемого iframe.$post
(необязательный, число | WP_Post) — ID записи или объект записи, код встраивания которой нужно получить. По умолчанию используется текущий пост в цикле WordPress.
Возвращаемое значение
- Строка — HTML-код для встраивания, если запись существует.
false
— Если запись не найдена или недоступна.
Пример 1: Встраивание записи с конкретным ID
Допустим, вам нужно встроить запись с ID 42
с шириной 600
пикселей и высотой 400
пикселей. Вы можете сделать это следующим образом:
echo get_post_embed_html( 600, 400, 42 );
В результате этот код выведет HTML-код oEmbed для указанной записи:
<blockquote class="wp-embedded-content"><a href="https://example.com/?p=42">Название записи</a></blockquote>
<iframe sandbox="allow-scripts" security="restricted" src="https://example.com/?p=42&embed=true" width="600" height="400" title="Встраиваемая запись" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"></iframe>
Пример 2: Встраивание текущей записи в цикле
Если функция используется в контексте WordPress Loop, и вам нужно встроить текущую запись, можно не передавать ID, а просто указать ширину и высоту:
if ( have_posts() ) : while ( have_posts() ) : the_post();
echo get_post_embed_html( 500, 300 );
endwhile; endif;
Этот код встроит текущую запись из цикла с заданными размерами.
Пример 3: Встраивание пользовательского типа записи
Функция также поддерживает встраивание пользовательских типов записей. Например, для встраивания записи с типом portfolio
с ID 123
, можно использовать следующий код:
$post = get_post( 123 ); // Получаем объект записи типа 'portfolio'
if ( $post && $post->post_type === 'portfolio' ) {
echo get_post_embed_html( 700, 500, $post );
}
Заключение
Функция get_post_embed_html()
предоставляет простой способ получить готовый HTML-код для встраивания записей на другие сайты с различными настройками размеров и постов. Это удобный инструмент для реализации внешнего отображения контента, особенно если вы хотите демонстрировать записи своего сайта на других ресурсах.