新聞中心

在Web性能方面,任何優(yōu)化都不會太小。隨著時間的推移,許多這些小技巧和優(yōu)化可以開始減少相當多的整體加載時間。在此前,我們分享了如何在wordpress中禁用表情符號。今天我們想與您分享如何在WordPress中禁用嵌入。
當他們發(fā)布WordPress 4.4時,他們將oEmbed功能合并到核心中。您之前可能已經(jīng)看到或使用過它。這允許用戶只需粘貼URL即可在其網(wǎng)站上嵌入YouTube視頻、推文和許多其他資源,WordPress會自動將其轉(zhuǎn)換為嵌入內(nèi)容,并在可視化編輯器中提供實時預(yù)覽。例如,我們從Twitter粘貼了這個URL:https://twitter.com/kinsta/status/760489262127120385,它被轉(zhuǎn)換成你在下面看到的。您可以查看官方支持的嵌入類型列表。
嵌入Tweet推文
WordPress長期以來一直是oEmbed消費者,但隨著更新,WordPress 本身成為oEmbed提供者。此功能對很多人都很有用,您可能希望保持啟用狀態(tài)。但是,這意味著它現(xiàn)在還會在您的WordPress站點上生成一個額外的HTTP請求來加載wp-embed.min.js文件。這會加載到每個頁面上。雖然這個文件只有1.7KB,但這些東西會隨著時間的推移而增加。請求本身有時比內(nèi)容下載大小更重要。
wp-embed.min.js
在WordPress中禁用嵌入
有幾種不同的方法可以在WordPress中禁用嵌入。您可以使用免費插件、代碼或內(nèi)聯(lián)縮小的JS來實現(xiàn)。
- 插件禁用嵌入
- 代碼禁用嵌入
- 內(nèi)聯(lián)縮小的JS
1. 使用插件禁用WordPress嵌入
禁用嵌入的第一種方法是簡單地使用一個名為Disable Embeds的免費插件,該插件由Pascal Birchler開發(fā), 他實際上是WordPress的核心貢獻者之一。
Disable embeds插件
這個插件超級輕量級??,準確地說只有3KB。在撰寫本文時,它目前有超過20,000 次活躍安裝。您可以從WordPress插件庫下載它 ,也可以在WordPress儀表盤中的“插件-安裝插件”下搜索它。無需配置,只需安裝、激活,額外的JavaScript文件就會消失。具有以下特點:
- 防止其他人嵌入您的網(wǎng)站。
- 防止您嵌入其他未列入白名單的網(wǎng)站。
- 禁止在您的WordPress網(wǎng)站上加載JavaScript文件。
您仍然可以使用YouTube和Twitter的嵌入iframe腳本嵌入內(nèi)容。您還可以使用像perfmatters這樣的高級插件,它允許您禁用嵌入以及對WordPress網(wǎng)站的其他優(yōu)化。
使用perfmatters插件禁用嵌入
2. 使用代碼禁用WordPress嵌入
如果您不想安裝其他插件,您也可以使用代碼禁用嵌入。首先創(chuàng)建網(wǎng)站備份,然后,將以下內(nèi)容添加到您的主題的functions.php文件中。注意:代碼來自上面的Disable Embeds插件。
重要的!如果操作不當,編輯WordPress主題的源代碼可能會破壞您的網(wǎng)站。也就是為什么要先備份后改代碼!
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 the front-end and back-end.
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );
// Remove all embeds rewrite rules.
add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );
// Remove filter of the oEmbed result before any HTTP requests are made.
remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 );
}
add_action( 'init', 'disable_embeds_code_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;
}
或者您也可以使用wp_dequeue_script函數(shù)。
function my_deregister_scripts(){
wp_dequeue_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );
3. 內(nèi)聯(lián)縮小的JS
第三種選擇是獲取wp-embed.min.js文件的內(nèi)容并將其嵌入內(nèi)聯(lián)。這應(yīng)該只在小文件或不涉及太多代碼的情況下完成。如果您只是想擺脫HTTP請求,但仍保留對嵌入的支持,那就是這種情況。
網(wǎng)站欄目:禁用WordPress嵌入功能以提升WordPress性能
標題來源:http://www.dlmjj.cn/article/coeijpp.html


咨詢
建站咨詢
