Skip to content

Instantly share code, notes, and snippets.

@sareiodata
Last active January 23, 2024 16:43
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save sareiodata/77796b5ed8108a516e82b888cb78bdae to your computer and use it in GitHub Desktop.
Save sareiodata/77796b5ed8108a516e82b888cb78bdae to your computer and use it in GitHub Desktop.
WP Remove Assets
<?php
/*
* Plugin Name: WP Remove Assets
* Plugin URI: https://www.cozmsolabs.com
* Version: 0.1
* Description: Filter particular scripts and style to load in posts or pages that don't need it.
* Author: Cristian Antohe
* Author URI: https://www.cozmoslabs.com/
*/
// remove script handles we don't need, each with their own conditions
add_action( 'wp_print_scripts', 'wra_filter_scripts', 100000 );
add_action( 'wp_print_footer_scripts', 'wra_filter_scripts', 100000 );
function wra_filter_scripts() {
#wp_deregister_script($handle);
#wp_dequeue_script($handle);
wp_deregister_script( 'bbpress-editor' );
wp_dequeue_script( 'bbpress-editor' );
// Device Pixels support
// This improves the resolution of gravatars and wordpress.com uploads on hi-res and zoomed browsers. We only have gravatars so we should be ok without it.
wp_deregister_script( 'devicepx' );
wp_dequeue_script( 'devicepx' );
if ( ! is_singular( 'docs' ) ) {
// the table of contents plugin is being used on documentation pages only
wp_deregister_script( 'toc-front' );
wp_dequeue_script( 'toc-front' );
}
if ( ! is_singular( array( 'docs', 'post' ) ) ) {
wp_deregister_script( 'codebox' );
wp_dequeue_script( 'codebox' );
}
}
// Jetpack
add_action( 'jetpack_implode_frontend_css', 'wra_remove_jetpack' );
function wra_remove_jetpack() {
return false;
}
// remove styles we don't need
add_action( 'wp_print_styles', 'wra_filter_styles', 100000 );
add_action( 'wp_print_footer_scripts', 'wra_filter_styles', 100000 );
function wra_filter_styles() {
#wp_deregister_style($handle);
#wp_dequeue_style($handle);
//no more bbpress styles.
wp_deregister_style( 'bbp-default' );
wp_dequeue_style( 'bbp-default' );
// download monitor is not used in the front-end.
wp_deregister_style( 'wp_dlmp_styles' );
wp_dequeue_style( 'wp_dlmp_styles' );
if ( ! is_singular( 'docs' ) ) {
// the table of contents plugin is being used on documentation pages only
wp_deregister_style( 'toc-screen' );
wp_dequeue_style( 'toc-screen' );
}
if ( ! ( is_page( 'account' ) || is_page( 'edit-profile' ) ) ) {
// this should not be like this. Need to look into it.
wp_deregister_style( 'wppb_stylesheet' );
wp_dequeue_style( 'wppb_stylesheet' );
}
if ( ! is_singular( array( 'docs', 'post' ) ) ) {
wp_deregister_style( 'codebox' );
wp_dequeue_style( 'codebox' );
}
}
// list loaded assets by our theme and plugins so we know what we're dealing with. This is viewed by admin users only.
add_action( 'wp_print_footer_scripts', 'wra_list_assets', 900000 );
function wra_list_assets() {
if ( ! current_user_can( 'delete_users' ) ) {
return;
}
echo '</pre><h2>List of all scripts loaded on this particular page.</h2>';
echo 'This can differ from page to page depending of what is loaded in that particular web page.';
// Print all loaded Scripts (JS)
global $wp_scripts;
wra_print_assets($wp_scripts);
// Print all loaded Scripts (JS) global $wp_scripts; wra_print_assets($wp_scripts);
echo '<h2>List of all css styles loaded on this particular page.</h2>';
echo 'This can differ from page to page depending of what is loaded in that particular page.';
// Print all loaded Styles (CSS)
global $wp_styles;
wra_print_assets( $wp_styles );
}
function wra_print_assets( $wp_asset ) {
$nb_of_asset = 0;
foreach ( $wp_asset->queue as $asset ) : $nb_of_asset ++;
$asset_obj = $wp_asset->registered[ $asset ];
wra_asset_template( $asset_obj, $nb_of_asset );
endforeach;
}
function wra_asset_template( $asset_obj, $nb_of_asset ) {
if ( is_object( $asset_obj ) ) {
echo '<div class="wra_asset" style="padding: 2rem; font-size: 14px; border-bottom: 1px solid #ccc;">';
echo '<div class="wra_asset_nb"><span style="width: 150px; display: inline-block;">Number:</span>';
echo $nb_of_asset . '</div>';
echo '<div class="wra_asset_handle"><span style="width: 150px; display: inline-block;">Handle:</span>';
echo $asset_obj->handle . '</div>';
echo '<div class="wra_asset_src"><span style="width: 150px; display: inline-block;">Source:</span>';
echo $asset_obj->src . '</div>';
echo '<div class="wra_asset_deps"><span style="width: 150px; display: inline-block;">Dependencies:</span>';
foreach ( $asset_obj->deps as $deps ) {
echo $deps . ' / ';
}
echo '</div>';
echo '<div class="wra_asset_ver"><span style="width: 150px; display: inline-block;">Version:</span>';
echo $asset_obj->ver . '</div>';
echo '</div>';
}
}
@stepinstituteofart
Copy link

Where we upload this file? in WordPress Directory Please Tell us.

@sareiodata
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment