Creating WordPress Must-Use Plugin

Must-use plugins offer a unique way to manage functionality across your WordPress network. Unlike regular plugins, they are automatically activated and cannot be disabled through the admin panel. This article takes you through the process of creating your first must-use plugin, equipping you to streamline workflows and enforce specific features on your WordPress sites.

Understanding the Must-Use Plugin Landscape

Before diving in, let's recap what must-use plugins are and where they reside:

  • Function: Must-use plugins provide functionalities that are always active for all sites within a WordPress installation.

  • Location: They live in a special directory called wp-content/mu-plugins. This directory might need to be created manually.

Building Your Must-Use Plugin: A Hands-on Approach

Now, let's get started with creating your first must-use plugin:

  1. Access Your Site's Files: Utilize an FTP client like FileZilla or your web host's file manager to access your WordPress site's files.

  2. Locate the mu-plugins Directory: Navigate to the wp-content directory. If the mu-plugins directory doesn't exist, create it using your FTP client or file manager.

  3. Create Your Plugin File: Within the mu-plugins directory, create a new PHP file. Choose a descriptive name that reflects the plugin's purpose (e.g., custom-login-message.php).

  4. Save and Upload: Save your PHP file and upload it back to the mu-plugins directory on your server.

  5. Test and Observe: Visit your WordPress login page to see if your custom message appears. For more complex functionalities, test thoroughly to ensure everything works as expected.

This example delves into creating a more complex and useful must-use plugin for WordPress. We'll build a plugin that automatically selects a featured image for articles based on specific criteria.

Functionality:

  • Scans the content of a newly published article.

  • Searches for the first relevant image within the content.

  • Sets that image as the featured image for the article.

Benefits:

  • Saves time by automatically setting featured images.

  • Enforces consistency in featured image selection across the network.

Technical Considerations:

  • Utilizes the publish_post action to trigger the plugin functionality when a new post is published.

  • Leverages the get_the_content function to access the article content.

  • Employs regular expressions to identify relevant images within the content.

  • Uses the set_post_thumbnail function to set the chosen image as the featured image.

  •   <?php
      add_action( 'publish_post', 'my_automatic_featured_image' );
    
      function my_automatic_featured_image( $post_id ) {
        // Get the content of the newly published article
        $content = get_the_content( $post_id );
    
        // Define a regular expression to match image URLs (adjust as needed)
        $pattern = '/<img.+src=[\'\"](?P<url>.+)[\'\"]/i';
    
        // Search for the first image URL in the content
        preg_match( $pattern, $content, $matches );
    
        if ( isset( $matches['url'] ) ) {
          // Set the first image URL as the featured image
          set_post_thumbnail( $post_id, attachment_url_to_postid( $matches['url'] ) );
        }
      }
      ?>
    

    Explanation:

    1. The add_action hook triggers the my_automatic_featured_image function whenever a post is published (publish_post action).

    2. The function retrieves the content of the newly published post using get_the_content.

    3. A regular expression ($pattern) is defined to search for image URLs within the content using the preg_match function. You can adjust this pattern to target specific image formats or classes.

    4. If a match is found (isset check), the first image URL ($matches['url']) is extracted.

    5. The attachment_url_to_postid function converts the image URL to its corresponding attachment ID.

    6. Finally, set_post_thumbnail sets the retrieved attachment ID as the featured image for the post.

By creating WordPress must-use plugin, you can automate the process of setting featured images for your articles, saving time and ensuring consistency across your WordPress network.

Additional Tips:

  • Security First: Always follow WordPress coding standards and security best practices to prevent vulnerabilities in your plugin.

  • Start Simple: Begin with a basic must-use plugin to get comfortable with the concept. Gradually progress to more complex functionalities as you gain experience.

  • Consult Resources: The WordPress developer documentation offers a wealth of information on actions, filters, and best practices for plugin development https://developer.wordpress.org/plugins/hooks/.