May 11, 2023

Essential WordPress Settings and Plugins for a Solid Foundation

Play Video

What is the tutorial about?

Web Squadron will show you essential WordPress settings and recommended plugins to establish a strong foundation for your website. Whether you’re a beginner or an experienced user, these tips will help you optimize your website’s performance, security, and user experience. By the end of this tutorial, you’ll have a better understanding of how to configure your WordPress site for optimal results.

Use Cases for this Tutorial

  • New WordPress users looking to set up their website with the best settings and plugins for optimal performance
  • Experienced users who want to review and optimize their current WordPress settings
  • Web developers and designers seeking to improve their clients’ websites with the most effective settings and plugins
  • Business owners aiming to enhance their website’s user experience and performance

Code Snippets

Source: https://websquadron.co.uk/page-speed-performance-wordpress-code-snippets/

Remove Google Fonts for Elementor Sites


add_filter( 'elementor/frontend/print_google_fonts', '__return_false' );

 

Remove Google Fonts for Non-Elementor Sites


function disable_google_fonts() {

	return false;

}

add_filter( 'print_google_fonts', 'disable_google_fonts' );

 

Ensure Webfont is Loaded for Elementor Sites


add_filter( 'elementor_pro/custom_fonts/font_display', function( $current_value, $font_family, $data ) {

	return 'swap';

}, 10, 3 );

 

Ensure Webfont is Loaded for Non-Elementor Sites


function custom_font_display( $current_value, $font_family, $data ) {

	return 'swap';

}

add_filter( 'font_display', 'custom_font_display', 10, 3 );

 

Stop Lazy Load


add_filter( 'wp_lazy_loading_enabled', '__return_false' );

 

Or – Just Stop Lazy Load for One image.

Place your Media Library into List View and not Gallery, and then get the ID for the chosen image. Then copy and paste that 3 times over the example code below (10576)


/* Disable lazy loading for single image* */

function wphelp_no_lazy_load_id( $value, $image, $context ) {

if ( 'the_content' === $context ) {

$image_url = wp_get_attachment_image_url( 10576, 'large' ); 

if ( false !== strpos( $image, ' src="' . $image_url . '"' )) {

return false;

}

}

return $value;

}

add_filter( 'wp_img_tag_add_loading_attr', 'wphelp_no_lazy_load_id', 10576, 10576 );

 

Remove Unused JS


/**

 * We will Dequeue the jQuery UI script as example.

 *

 * Hooked to the wp_print_scripts action, with a late priority (99),

 * so that it is after the script was enqueued.

 */

function wp_remove_scripts() {

// check if user is admina

 if (current_user_can( 'update_core' )) {

            return;

        } 

 else {

    // Check for the page you want to target

    if ( is_page( 'homepage' ) ) {

        // Remove Scripts

  wp_dequeue_style( 'jquery-ui-core' );

     }

 }

}

add_action( 'wp_enqueue_scripts', 'wp_remove_scripts', 99 );

 

Explicit Fixed Width and Height


add_filter( 'the_content', 'add_image_dimensions' );


function add_image_dimensions( $content ) {


    preg_match_all( '/<img[^>]+>/i', $content, $images);


    if (count($images) < 1)

        return $content;


    foreach ($images[0] as $image) {

        preg_match_all( '/(alt|title|src|width|class|id|height)=("[^"]*")/i', $image, $img );


        if ( !in_array( 'src', $img[1] ) )

            continue;


        if ( !in_array( 'width', $img[1] ) || !in_array( 'height', $img[1] ) ) {

            $src = $img[2][ array_search('src', $img[1]) ];

            $alt = in_array( 'alt', $img[1] ) ? ' alt=' . $img[2][ array_search('alt', $img[1]) ] : '';

            $title = in_array( 'title', $img[1] ) ? ' title=' . $img[2][ array_search('title', $img[1]) ] : '';

            $class = in_array( 'class', $img[1] ) ? ' class=' . $img[2][ array_search('class', $img[1]) ] : '';

            $id = in_array( 'id', $img[1] ) ? ' id=' . $img[2][ array_search('id', $img[1]) ] : '';

            list( $width, $height, $type, $attr ) = getimagesize( str_replace( "\"", "" , $src ) );


            $image_tag = sprintf( '<img src=%s%s%s%s%s width="%d" height="%d" />', $src, $alt, $title, $class, $id, $width, $height );

            $content = str_replace($image, $image_tag, $content);

        }

    }


    return $content;

}

 

Remove Gutenberg CSS


/*

Plugin Name: Purge Cache

Description: Adds a button to the WordPress dashboard to clear the object cache

*/


add_action( 'admin_bar_menu', 'add_purge_cache_button', 999 );


function add_purge_cache_button( $wp_admin_bar ) {

    if ( ! current_user_can( 'manage_options' ) ) {

        return;

    }


    $args = array(

        'id'    => 'purge-cache',

        'title' => 'Purge Cache',

        'href'  => '#',

        'meta'  => array( 'class' => 'purge-cache' )

    );

    $wp_admin_bar->add_node( $args );

}


add_action( 'admin_footer', 'add_purge_cache_script' );


function add_purge_cache_script() {

    if ( ! current_user_can( 'manage_options' ) ) {

        return;

    }

    ?>

    <script>

    jQuery(document).ready(function($) {

        $('#wp-admin-bar-purge-cache').click(function() {

            if (confirm('Are you sure you want to purge the cache?')) {

                $.ajax({

                    url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',

                    data: {

                        action: 'purge_cache',

                    },

                    success: function() {

                        alert('Cache purged successfully!');

                    },

                    error: function() {

                        alert('An error occurred while purging the cache.');

                    }

                });

            }

        });

    });

    </script>

    <?php

}


add_action( 'wp_ajax_purge_cache', 'purge_cache_callback' );


function purge_cache_callback() {

    global $wp_object_cache;

    if ( ! current_user_can( 'manage_options' ) ) {

        wp_die();

    }


    wp_cache_flush();


    wp_die();

}

Required Resources

PhastPress Logo
Free
WP Meteor Logo
Free Options
Code Snippets Logo
Free Options
Elementor Logo
Free Options
Credit to Web Squadron
Web Squadron is a popular YouTube channel dedicated to providing informative tutorials, tips, and insights on web development and design. With a strong focus on WordPress and website builders like Bricks Builder, the channel aims to help users of all skill levels, from beginners to advanced developers, create and optimize their websites. By offering easy-to-understand, step-by-step guidance, Web Squadron provides practical and valuable content.
Visit
Essential WordPress Settings and Plugins for a Solid Foundation
Welcome back!
Enter your Helwp credentials to sign in.

No Account yet? Sign Up

My Account
Menu
Give Feedback
Describe your feedback *
Rate Helwp
Share
Facebook
Twitter
LinkedIn
Reddit
Email
WhatsApp
Telegram
Pocket
Report
Problem *
Describe the problem
Want us to reply?
Your E-Mail
Affiliate Disclosure

At Helwp, we’re committed to transparency and honesty. Therefore, we want to inform you that some of the links on our website are affiliate links. This means that, at no additional cost to you, we may earn a small commission if you click through and make a purchase.

We only promote products or services that we genuinely believe in. These affiliate commissions help us to maintain the website and continue to provide you with free, high-quality WordPress content.

If you are interested in how you can support us even further, check out our support page.