Skip to content

WordPress下删除删除短链接标记、wlwmanifest链接、RSD链接标记

Last updated on 2020-03-09

WordPress合理的优化一些不必要的加载内容,可以在一定程度上加快网站的响应以节省一些没必要的资源开销。

删除RSD链接标记

<?php remove_action('wp_head', 'rsd_link'); ?>

删除wlwmanifest链接

wlwmanifest链接是一个过时的工具了,用于直接发布到wordpress,可以直接删除。

remove_action('wp_head', 'wlwmanifest_link');

删除短链接标记

短链接标记也是存在每个页面上。包含有指向pageID文章的链接,你要使用的自定义URL这个就可以删除了。

add_filter('after_setup_theme', 'remove_redundant_shortlink');
function remove_redundant_shortlink() {
  // remove HTML meta tag
  // <link rel='shortlink' href='http://example.com/?p=25' />
  remove_action('wp_head', 'wp_shortlink_wp_head', 10);

  // remove HTTP header
  // Link: <https://example.com/?p=25>; rel=shortlink
  remove_action( 'template_redirect', 'wp_shortlink_header', 11);
}

禁用Embeds

使用代码的方式文章嵌入是什么?

文章嵌入就是在你的博客里插入其他网站的文章,文章内容还是来自其他的网站。比如嵌入视频、文章、其他博客的页面等等。

大部分人都不会使用到嵌入功能,下面是禁用嵌入功能的代码

function disable_embeds_init() {
/* @var WP $wp */
global $wp;
// Remove the embed query var.
$wp->public_query_vars = array_diff( $wp->public_query_vars, array(
'embed',
) );
// Remove the REST API endpoint.
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
// Turn off
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' );
}

add_action( 'init', 'disable_embeds_init', 9999 );

/**
* Removes the 'wpembed' TinyMCE plugin.
*
* @since 1.0.0
*
* @param array $plugins List of TinyMCE plugins.
* @return array The modified list.
*/
function disable_embeds_tiny_mce_plugin( $plugins ) {
return array_diff( $plugins, array( 'wpembed' ) );
}

/**
* Remove all rewrite rules related to embeds.
*
* @since 1.2.0
*
* @param array $rules WordPress rewrite rules.
* @return array Rewrite rules without embeds rules.
*/
function disable_embeds_rewrites( $rules ) {
foreach ( $rules as $rule => $rewrite ) {
if ( false !== strpos( $rewrite, 'embed=true' ) ) {
unset( $rules[ $rule ] );
}
}
return $rules;
}

/**
* Remove embeds rewrite rules on plugin activation.
*
* @since 1.2.0
*/
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' );

/**
* Flush rewrite rules on plugin deactivation.
*
* @since 1.2.0
*/
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' );

将以上代码写入functions.php文件即可禁用。

代码较长,我们可以将上面代码保存为php文件,然后引用这个PHP文件。这样functions.php里面的代码就不会太乱。

这里直接提供下这个php文件的下载。

蓝奏云:https://www.lanzous.com/ia3bx8f

如何在functions.php中引用这个PHP

//禁止加载wp-embeds.mins.js
include (TEMPLATEPATH . '/includes/disable_embeds.php');

将代码填入functions.php即可。

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;
}

当然你也可以使用插件,禁用wordpress嵌入插件:

Disable Embeds

Reduce HTTP Requests, Disable Emojis & Disable Embeds, Speedup WooCommerc

Published inwordpress

One Comment

  1. WordPress2020终极优化指南 (二) – GNU/X

    […] WordPress下删除删除短链接标记、wlwmanifest链接、RSD链接标记 […]

发表评论

电子邮件地址不会被公开。