get_post_embed_url() WP 4.4.0

Отримує URL, який потрібно використовувати в iframe для вбудовування зазначеного запису на іншому сайті (oEmbed формат).

Що таке Embed читайте тут: oEmbed у WordPress

Щоб вбудувати запис іншого сайту на WordPress на свій сайт, потрібно додати УРЛ записи до контенту свого запису. WordPress автоматично обробить URL-адресу.

Працює на основі:
get_permalink()
Основа для:
get_post_embed_html()

Хуки з функції

Повертає

Строку|false. oEmbed URL запису або false, якщо запису не існує.

Використання

get_post_embed_url($post);
$post
(число/WP_Post)
ID або об’єкт запису, oEmbed url якої потрібно отримати.


Типово: null (поточний запис у циклі)

Приклади

0

#1 Як виглядає oEmbed посилання

echo get_post_embed_url(1);
// виведе: http://example.com/post-name/embed
0

#2 Готовий вигляд

Наприклад візьмемо статтю цього сайту: http://wp-kama.ru/handbook/theme/child-themeі створимо для неї embed вставку вручну, використовуючи такий URLhttp://wp-kama.ru/handbook/theme/child-theme/embed

<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"
src="/handbook/theme/child-theme/embed"
width="600" height="350" style="max-width:600px"
frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

В результаті отримаємо таку вставку:

Примітка: для створення iframe блоку автоматично для зазначеного поста існує функція: get_post_embed_html()

список змін

З версії 4.4.0Введено.

Код get_post_embed_url() WP 6.0.2

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 для embed a specific post.
	 *
	 * @ Since 4.4.0
	 *
	 * @param string $embed_url The post embed URL.
	 * @param WP_Post $post Відповідний об'єкт.
	 */
	return esc_url_raw( apply_filters( 'post_embed_url', $embed_url, $post ) );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *