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