WordPress自動嵌入文章是基于wp-embed.min.js文件實現的一種嵌入式引用功能,從wordpress4.4起,官方默認開啟了其支持,當使用wp_head與wp_footer輸出網頁頭部與底部時,wordpress會默認輸出wp-embed.min.js。并提供內容嵌入,不想用它直接禁止它就好了。今天我們講講WordPress網站開啟/禁用自動嵌入文章功能。
此功能生成的引用代碼會被更新到數據庫中,并且會訪問引用目標。生成的引用代碼是包裹在iframe標簽中的,所以對搜索引擎非常不友好,國內百度直接無視它,所以建議大家不要使用這個功能。
禁用方式很多,也可以搜索插件安裝,這里提供一段禁用代碼,加入你的functions.php文件中即可。
/**
* Disable embeds
*/
if ( !function_exists( 'disable_embeds_init' ) ) :
function disable_embeds_init(){
global $wp;
$wp->public_query_vars = array_diff($wp->public_query_vars, array('embed'));
remove_action('rest_api_init', 'wp_oembed_register_route');
add_filter('embed_oembed_discover', '__return_false');
remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');
add_filter('tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin');
add_filter('rewrite_rules_array', 'disable_embeds_rewrites');
}
add_action('init', 'disable_embeds_init', 9999);
function disable_embeds_tiny_mce_plugin($plugins){
return array_diff($plugins, array('wpembed'));
}
function disable_embeds_rewrites($rules){
foreach ($rules as $rule => $rewrite) {
if (false !== strpos($rewrite, 'embed=true')) {
unset($rules[$rule]);
}
}
return $rules;
}
function disable_embeds_remove_rewrite_rules(){
add_filter('rewrite_rules_array', 'disable_embeds_rewrites');
flush_rewrite_rules();
}
register_activation_hook(__FILE__, 'disable_embeds_remove_rewrite_rules');
function disable_embeds_flush_rewrite_rules(){
remove_filter('rewrite_rules_array', 'disable_embeds_rewrites');
flush_rewrite_rules();
}
register_deactivation_hook(__FILE__, 'disable_embeds_flush_rewrite_rules');
endif;





