Created
April 6, 2020 21:37
-
-
Save bstonedev/3df7d72c00a9675e05372e53d700b965 to your computer and use it in GitHub Desktop.
code snippets for functions.php to increase performance
This file contains hidden or 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
<?php | |
/** | |
* Disable jQuery Migrate in WordPress. | |
* | |
*/ | |
function crave_remove_jquery_migrate( &$scripts) { | |
if(!is_admin()) { | |
$scripts->remove('jquery'); | |
} | |
} | |
add_action( 'wp_default_scripts', 'crave_remove_jquery_migrate' ); | |
/** | |
* Function to defer all scripts which are not excluded | |
*/ | |
function crave_js_defer_attr($tag) { | |
if (is_admin()) { | |
return $tag; | |
} | |
// Do not add defer attribute to these scripts | |
$scripts_to_exclude = array('jquery.js'); // add a string of js file e.g. script.js | |
foreach($scripts_to_exclude as $exclude_script) { | |
if (true == strpos($tag, $exclude_script ) ) | |
return $tag; | |
} | |
// Defer all remaining scripts not excluded above | |
return str_replace( ' src', ' async src', $tag ); | |
} | |
add_filter( 'script_loader_tag', 'crave_js_defer_attr', 10); | |
/** | |
* 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 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; | |
} | |
/** | |
* Remove block-library-css | |
*/ | |
function wpassist_remove_block_library_css(){ | |
wp_dequeue_style( 'wp-block-library' ); | |
} | |
add_action( 'wp_enqueue_scripts', 'wpassist_remove_block_library_css' ); | |
/** | |
* Remove svg plugin css | |
*/ | |
add_action( 'wp_print_styles', 'deregister_my_styles', 100 ); | |
function deregister_my_styles() { | |
wp_deregister_style( 'bodhi-svgs-attachment' ); | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment