Bird
Raised Fist0
Wordpressframework~10 mins

Plugin header and activation in Wordpress - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Plugin header and activation
Write Plugin Header
↓
Place Plugin File in wp-content/plugins
↓
Go to WordPress Admin Plugins Page
↓
WordPress Reads Header
↓
Plugin Appears in List
↓
Click Activate
↓
Activation Hook Runs (if defined)
↓
Plugin Activated and Ready
This flow shows how WordPress reads the plugin header to list the plugin, then runs activation code when you activate it.
Execution Sample
Wordpress
<?php
/*
Plugin Name: My Sample Plugin
Description: Shows plugin header and activation.
Version: 1.0
Author: You
*/

register_activation_hook(__FILE__, function() {
  error_log('Plugin activated');
});
This code defines a plugin header and an activation hook that logs a message when the plugin is activated.
Execution Table
StepActionEvaluationResult
1WordPress scans plugin fileReads header comment blockPlugin info extracted: Name, Description, Version, Author
2Plugin appears in admin plugins listHeader info displayedPlugin listed as 'My Sample Plugin'
3User clicks 'Activate'Activation hook detectedRuns registered activation function
4Activation function runsCalls error_logMessage 'Plugin activated' logged
5Plugin status changesMarked as activePlugin ready to use
💡 Activation completes, plugin is active and ready
Variable Tracker
VariableStartAfter ActivationFinal
Plugin StatusInactiveActivatingActive
Activation Hook CalledFalseTrueTrue
Log MessageNone'Plugin activated''Plugin activated'
Key Moments - 2 Insights
Why does the plugin not appear in the list if the header is missing or malformed?
WordPress reads the header comment block to identify plugins. Without a proper header (see execution_table step 1), WordPress cannot recognize the file as a plugin, so it won't list it.
What happens if the activation hook is not defined?
If no activation hook is registered (see execution_table step 3), WordPress activates the plugin without running any extra code. The plugin becomes active but no activation message or setup runs.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the plugin status after step 3?
AActivating
BInactive
CActive
DDeactivated
💡 Hint
Check the 'Plugin Status' row in variable_tracker after activation starts
At which step does WordPress read the plugin header?
AStep 2
BStep 1
CStep 3
DStep 4
💡 Hint
Look at the 'Action' column in execution_table for header reading
If the activation hook logs a message, when does this happen?
AWhen plugin file is scanned
BWhen plugin is listed
CWhen user clicks activate
DWhen plugin is deactivated
💡 Hint
See execution_table step 4 where activation function runs
Concept Snapshot
Plugin header is a special comment block at the top of the main plugin file.
WordPress reads this header to list the plugin in admin.
Activation hook runs code when user activates the plugin.
Use register_activation_hook(__FILE__, callback) to define activation behavior.
Without header, plugin won't appear; without activation hook, no setup runs.
Full Transcript
In WordPress, a plugin must start with a header comment block that includes details like Plugin Name, Description, Version, and Author. WordPress scans plugin files in the plugins folder and reads this header to list the plugin in the admin area. When a user clicks activate, WordPress runs any activation hook registered with register_activation_hook. This hook lets the plugin run setup code, like creating database tables or logging messages. If the header is missing, WordPress won't recognize the file as a plugin. If the activation hook is missing, the plugin activates without running extra code. This flow ensures plugins are properly identified and can prepare themselves when activated.

Practice

(1/5)
1. What is the main purpose of the plugin header in a WordPress plugin?
easy
A. To style the plugin's admin page
B. To run code when the plugin is activated
C. To connect the plugin to the WordPress database
D. To provide WordPress with information about the plugin like name and version

Solution

  1. Step 1: Understand the role of the plugin header

    The plugin header is a comment block at the top of the main plugin file that tells WordPress details like the plugin's name, version, author, and description.
  2. Step 2: Differentiate header from activation code

    Activation code runs when the plugin is turned on, but the header only provides metadata to WordPress.
  3. Final Answer:

    To provide WordPress with information about the plugin like name and version -> Option D
  4. Quick Check:

    Plugin header = plugin info [OK]
Hint: Plugin header is metadata, not code execution [OK]
Common Mistakes:
  • Confusing header with activation hook
  • Thinking header runs code
  • Assuming header styles plugin pages
2. Which of the following is the correct way to start a plugin header in a WordPress plugin file?
easy
A.
B.
C. /*\nPlugin Name: My Plugin\n*/
D. "

Solution

  1. Step 1: Recognize the plugin header format

    The plugin header must be a PHP comment block at the top of the main plugin file, starting with and ending with */ ?>.
  2. Step 2: Check each option's syntax

    uses the correct PHP comment block format. uses a single-line comment which WordPress does not recognize as a header. /*\nPlugin Name: My Plugin\n*/ is a string, not a comment. " is an HTML comment, which WordPress ignores.
  3. Final Answer:

    <?php /* Plugin Name: My Plugin */ ?> -> Option B
  4. Quick Check:

    Plugin header = PHP comment block [OK]
Hint: Plugin header must be inside PHP comment block [OK]
Common Mistakes:
  • Using single-line comments for header
  • Using HTML comments instead of PHP comments
  • Not starting with php
3. Given this plugin activation code snippet, what will happen when the plugin is activated?
register_activation_hook(__FILE__, function() {
    update_option('my_plugin_activated', true);
});
medium
A. The option 'my_plugin_activated' will be set to true in the database
B. Nothing happens because the hook is incorrect
C. The plugin will deactivate immediately
D. An error will occur because update_option is not allowed

Solution

  1. Step 1: Understand register_activation_hook usage

    This function runs the given callback once when the plugin is activated.
  2. Step 2: Analyze the callback function

    The callback calls update_option to set 'my_plugin_activated' to true in the WordPress options table.
  3. Final Answer:

    The option 'my_plugin_activated' will be set to true in the database -> Option A
  4. Quick Check:

    Activation hook runs callback once [OK]
Hint: Activation hook runs code once on plugin activation [OK]
Common Mistakes:
  • Thinking activation hook runs on every page load
  • Confusing activation with deactivation hooks
  • Assuming update_option causes errors
4. Identify the error in this plugin activation code:
register_activation_hook(__FILE__, 'activate_plugin');

function activate_plugin() {
    add_option('plugin_activated', true);
}
medium
A. Using add_option instead of update_option causes failure if option exists
B. register_activation_hook must use an anonymous function, not named
C. The function activate_plugin is missing a return statement
D. The __FILE__ constant is not allowed in register_activation_hook

Solution

  1. Step 1: Understand add_option vs update_option

    add_option adds a new option only if it does not exist. If the option exists, it fails silently. update_option adds or updates the option.
  2. Step 2: Check the activation code behavior

    If the plugin is activated multiple times or the option already exists, add_option will not update the value, possibly causing unexpected behavior.
  3. Final Answer:

    Using add_option instead of update_option causes failure if option exists -> Option A
  4. Quick Check:

    Use update_option to ensure option is set [OK]
Hint: Use update_option in activation to avoid silent failures [OK]
Common Mistakes:
  • Confusing add_option and update_option
  • Thinking named functions can't be used
  • Misunderstanding __FILE__ usage
5. You want your plugin to create a custom database table only once when activated. Which is the best way to do this in your plugin activation hook?
hard
A. Create the table inside the plugin's main file without any condition
B. Create the table every time the plugin runs, outside any hook
C. Use register_activation_hook with a function that checks if the table exists, then creates it if missing
D. Use the plugin header to define the table creation SQL

Solution

  1. Step 1: Understand when to create database tables

    Database tables should be created once on plugin activation to avoid errors and performance issues.
  2. Step 2: Use activation hook with existence check

    The activation hook runs once. Checking if the table exists before creating prevents errors if the plugin is reactivated.
  3. Step 3: Avoid creating tables on every page load or in headers

    Creating tables outside activation or without checks can cause repeated attempts and errors.
  4. Final Answer:

    Use register_activation_hook with a function that checks if the table exists, then creates it if missing -> Option C
  5. Quick Check:

    Activation hook + check = safe table creation [OK]
Hint: Create tables only once inside activation hook with checks [OK]
Common Mistakes:
  • Creating tables on every page load
  • Putting SQL in plugin header
  • Not checking if table exists before creating
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard