get_post_embed_url

Получает URL, который нужно использовать в iframe для встраивания указанной записи на другом сайте (oEmbed формат).

Коротко о том что такое oEmbed читайте в описании функции get_post_embed_html()

Чтобы встроить запись другого сайта на WordPress в свой сайт, нужно добавить УРЛ записи в контент своей записи. WordPress автоматически обработает URL.
Хуки из функции:
post_embed_url
Возвращает

Строку/false. oEmbed URL записи или false, если записи не существует.

Использование

get_post_embed_url( $post );
$post(число/WP_Post)
ID или объект записи, oEmbed url которой нужно получить.
По умолчанию: null (текущая запись в цикле)

Примеры

#1 Как выглядит oEmbed ссылка

echo get_post_embed_url( 1 );
// выведет: http://site.ru/ярлык-текущей-записи-обычно-в-латинице/embed

#2 Готовый встроенный вид

Для примера возьмем статью этого сайта: http://wp-kama.ru/id_6235/dochernie-temy-wordpress.html и создадим для нее embed вставку вручную, используя такой URL http://wp-kama.ru/id_6235/dochernie-temy-wordpress.html/embed

<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"
src="http://wp-kama.ru/id_6235/dochernie-temy-wordpress.html/embed"
width="600" height="350" style="max-width:600px"
frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

В результате получим такую вставку:


Заметка: для создания iframe блока автоматически для указанного поста, существует функция: get_post_embed_html()

Код из


wp-includes/embed.php

WP 4.7.2

<?php
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 ) );
	}

	/**
	 * Filters the URL to embed a specific post.
	 *
	 * @since 4.4.0
	 *
	 * @param string  $embed_url The post embed URL.
	 * @param WP_Post $post      The corresponding post object.
	 */
	return esc_url_raw( apply_filters( 'post_embed_url', $embed_url, $post ) );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *