📅  最后修改于: 2023-12-03 14:48:32.154000             🧑  作者: Mango
当你在WordPress发表一篇文章时,它的oEmbed功能会自动将嵌入的链接转换为可嵌入的内容。这个特性可以在文章中添加丰富的媒体内容,但有时也可能对你的网站产生影响。在某些情况下,你可能希望禁用WordPress的oEmbed功能,本文将介绍如何使用PHP禁用WordPress的oEmbed功能。
以下代码可以在你的WordPress主题所在的functions.php文件中使用,它会禁用WordPress oEmbed功能:
function disable_embeds_code_init() {
// Remove the REST API endpoint.
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
// Turn off oEmbed auto discovery.
add_filter( 'embed_oembed_discover', '__return_false' );
// Don't filter oEmbed results.
remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );
// Remove oEmbed discovery links.
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
// Remove oEmbed-specific JavaScript from front-end and back-end.
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );
// Disable the `embed` query var.
add_filter( 'query_vars', 'disable_embeds_query_var' );
}
add_action( 'init', 'disable_embeds_code_init', 9999 );
/**
* Disable embeds in WordPress from TinyMCE.
*
* @param array $plugins List of TinyMCE plugins.
* @return array Modified list of TinyMCE plugins.
*/
function disable_embeds_tiny_mce_plugin( $plugins ) {
return array_diff( $plugins, array( 'wpembed' ) );
}
/**
* Remove the `embed` query var.
*
* @param array $vars WordPress query variables.
* @return array Modified WordPress query variables without `embed`.
*/
function disable_embeds_query_var( $vars ) {
return array_diff( $vars, array( 'embed' ) );
}
上面的代码片段包含了一系列对WordPress oEmbed功能进行禁用的操作:
将上述代码片段添加到你的WordPress主题的functions.php文件中,它将禁用WordPress的oEmbed功能,这将有助于提高网站性能并防止恶意第三方为你的网站注入不良内容。