WordPress网站开启/禁用自动嵌入文章功能

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;

Image