WordPress开启/禁用自动嵌入文章功能wp-embed

重要:本文最后更新于2020-03-02 10:04:47,某些文章具有时效性,若有错误或已失效,请在下方留言或联系九月网

有用户反馈说wordpress后台新一行输入文章地址后会自动引用文章,样式还不错,但在前台引用样式就不见了,所以有了WordPress自动嵌入文章功能这篇文章,大家看了后再决定用不用。

开启wp-embed

WordPress自动嵌入文章是基于wp-embed.min.js文件实现的一种嵌入式引用功能,从wordpress4.4起,官方默认开启了其支持,当使用wp_head与wp_footer输出网页头部与底部时,wordpress会默认输出wp-embed.min.js。并提供内容嵌入,不想用它直接禁止它就好了。

这个内容嵌入功能刚出现,就遭到了全球开发者的一致声讨,并直接禁用,想必这个功能的开发者肯定十分无语。

该功能效果如下

该功能使用了blockquote标签,所以我贴了一个默认样式大家对比。

wordpress使用wp-embed嵌入功能

wordpress使用wp-embed嵌入功能

据国外网友称,此功能生成的引用代码会被更新到数据库中,并且会访问引用目标。生成的引用代码是包裹在iframe标签中的,所以对搜索引擎非常不友好,国内百度直接无视它,所以建议大家不要使用这个功能。

禁用wp-embed

禁用方式很多,也可以搜索插件安装,这里提供一段禁用代码,加入你的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;

给TA打赏
共{{data.count}}人
人已打赏
WordPress

WordPress获取用户对象函数wp_set_current_user

2020-3-1 0:00:00

WordPress

WordPress激活主题时自动创建数据表

2020-3-5 0:00:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索