函数文档

wp_maybe_load_embeds()

💡 云策文档标注

概述

wp_maybe_load_embeds() 函数用于决定是否加载默认的嵌入处理器。它检查嵌入库是否已加载,若未加载则注册 YouTube、音频和视频的默认嵌入处理器。

关键要点

  • 函数检查嵌入库是否已加载,避免重复加载。
  • 通过 load_default_embeds 过滤器控制是否加载默认嵌入处理器,默认值为 true。
  • 注册 YouTube、音频和视频的默认嵌入处理器,分别使用 wp_embed_handler_youtube、wp_embed_handler_audio 和 wp_embed_handler_video 回调函数。
  • 音频和视频嵌入处理器可通过 wp_audio_embed_handler 和 wp_video_embed_handler 过滤器自定义回调函数。
  • 相关函数包括 wp_embed_register_handler()、wp_get_video_extensions()、wp_get_audio_extensions() 和 apply_filters()。

代码示例

function wp_maybe_load_embeds() {
    if ( ! apply_filters( 'load_default_embeds', true ) ) {
        return;
    }

    wp_embed_register_handler( 'youtube_embed_url', '#https?://(www.)?youtube.com/(?:v|embed)/([^/]+)#i', 'wp_embed_handler_youtube' );
    wp_embed_register_handler( 'audio', '#^https?://.+?.(' . implode( '|', wp_get_audio_extensions() ) . ')$#i', apply_filters( 'wp_audio_embed_handler', 'wp_embed_handler_audio' ), 9999 );
    wp_embed_register_handler( 'video', '#^https?://.+?.(' . implode( '|', wp_get_video_extensions() ) . ')$#i', apply_filters( 'wp_video_embed_handler', 'wp_embed_handler_video' ), 9999 );
}

注意事项

  • 使用 load_default_embeds 过滤器可禁用默认嵌入处理器的加载,例如返回 false。
  • 音频和视频嵌入处理器支持自定义回调函数,通过 wp_audio_embed_handler 和 wp_video_embed_handler 过滤器实现。
  • 函数自 WordPress 2.9.0 版本引入。

📄 原文内容

Determines if default embed handlers should be loaded.

Description

Checks to make sure that the embeds library hasn’t already been loaded. If it hasn’t, then it will load the embeds library.

See also

Source

function wp_maybe_load_embeds() {
	/**
	 * Filters whether to load the default embed handlers.
	 *
	 * Returning a falsey value will prevent loading the default embed handlers.
	 *
	 * @since 2.9.0
	 *
	 * @param bool $maybe_load_embeds Whether to load the embeds library. Default true.
	 */
	if ( ! apply_filters( 'load_default_embeds', true ) ) {
		return;
	}

	wp_embed_register_handler( 'youtube_embed_url', '#https?://(www.)?youtube.com/(?:v|embed)/([^/]+)#i', 'wp_embed_handler_youtube' );

	/**
	 * Filters the audio embed handler callback.
	 *
	 * @since 3.6.0
	 *
	 * @param callable $handler Audio embed handler callback function.
	 */
	wp_embed_register_handler( 'audio', '#^https?://.+?.(' . implode( '|', wp_get_audio_extensions() ) . ')$#i', apply_filters( 'wp_audio_embed_handler', 'wp_embed_handler_audio' ), 9999 );

	/**
	 * Filters the video embed handler callback.
	 *
	 * @since 3.6.0
	 *
	 * @param callable $handler Video embed handler callback function.
	 */
	wp_embed_register_handler( 'video', '#^https?://.+?.(' . implode( '|', wp_get_video_extensions() ) . ')$#i', apply_filters( 'wp_video_embed_handler', 'wp_embed_handler_video' ), 9999 );
}

Hooks

apply_filters( ‘load_default_embeds’, bool $maybe_load_embeds )

Filters whether to load the default embed handlers.

apply_filters( ‘wp_audio_embed_handler’, callable $handler )

Filters the audio embed handler callback.

apply_filters( ‘wp_video_embed_handler’, callable $handler )

Filters the video embed handler callback.

Changelog

Version Description
2.9.0 Introduced.