Last active
November 12, 2018 15:27
-
-
Save musamamasood/37ed05ea944795714d67a03a8f73db20 to your computer and use it in GitHub Desktop.
Remove unused links in WordPress header
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Remove junk from head | |
*/ | |
// remove WordPress version number | |
function crave_remove_version() { | |
return ''; | |
} | |
add_filter('the_generator', 'crave_remove_version'); | |
remove_action('wp_head', 'wp_generator'); | |
remove_action('wp_head', 'rsd_link'); // remove really simple discovery (RSD) link | |
remove_action('wp_head', 'wlwmanifest_link'); // remove wlwmanifest.xml (needed to support windows live writer) | |
remove_action('wp_head', 'feed_links', 2); // remove rss feed links (if you don't use rss) | |
remove_action('wp_head', 'feed_links_extra', 3); // removes all extra rss feed links | |
remove_action('wp_head', 'index_rel_link'); // remove link to index page | |
remove_action('wp_head', 'start_post_rel_link', 10, 0); // remove random post link | |
remove_action('wp_head', 'parent_post_rel_link', 10, 0); // remove parent post link | |
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0); // remove the next and previous post links | |
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); | |
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0 ); // remove shortlink | |
/** | |
* Disable the emoji's | |
*/ | |
function glowlogix_disable_emojis() { | |
remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); | |
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); | |
remove_action( 'wp_print_styles', 'print_emoji_styles' ); | |
remove_action( 'admin_print_styles', 'print_emoji_styles' ); | |
remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); | |
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); | |
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' ); | |
add_filter( 'tiny_mce_plugins', 'crave_disable_emojis_tinymce' ); | |
add_filter( 'wp_resource_hints', 'crave_disable_emojis_remove_dns_prefetch', 10, 2 ); | |
} | |
add_action( 'init', 'glowlogix_disable_emojis' ); | |
/** | |
* Filter function used to remove the tinymce emoji plugin. | |
* | |
* @param array $plugins | |
* @return array Difference betwen the two arrays | |
*/ | |
function crave_disable_emojis_tinymce( $plugins ) { | |
if ( is_array( $plugins ) ) { | |
return array_diff( $plugins, array( 'wpemoji' ) ); | |
} else { | |
return array(); | |
} | |
} | |
/** | |
* Remove emoji CDN hostname from DNS prefetching hints. | |
* | |
* @param array $urls URLs to print for resource hints. | |
* @param string $relation_type The relation type the URLs are printed for. | |
* @return array Difference betwen the two arrays. | |
*/ | |
function crave_disable_emojis_remove_dns_prefetch( $urls, $relation_type ) { | |
if ( 'dns-prefetch' == $relation_type ) { | |
/** This filter is documented in wp-includes/formatting.php */ | |
$emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' ); | |
$urls = array_diff( $urls, array( $emoji_svg_url ) ); | |
} | |
return $urls; | |
} | |
/** | |
* Disable embeds | |
*/ | |
function crave_disable_embeds() { | |
// 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', 'crave_disable_embeds_tiny_mce_plugin' ); | |
// Remove all embeds rewrite rules. | |
add_filter( 'rewrite_rules_array', 'crave_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', 'crave_disable_embeds', 9999 ); | |
function crave_disable_embeds_tiny_mce_plugin($plugins) { | |
return array_diff($plugins, array('wpembed')); | |
} | |
function crave_disable_embeds_rewrites($rules) { | |
foreach($rules as $rule => $rewrite) { | |
if(false !== strpos($rewrite, 'embed=true')) { | |
unset($rules[$rule]); | |
} | |
} | |
return $rules; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment