Bird
Raised Fist0
Wordpressframework~10 mins

Plugin file structure in Wordpress - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define the main plugin file header.

Wordpress
<?php
/*
Plugin Name: [1]
*/
Drag options to blanks, or click blank then click option'
Aadd_action
Bfunction my_plugin() {}
CMy Custom Plugin
Dwp_enqueue_scripts
Attempts:
3 left
💡 Hint
Common Mistakes
Using function names instead of plugin name in header
Omitting the plugin header comment block
2fill in blank
medium

Complete the code to enqueue a stylesheet in the plugin.

Wordpress
<?php
function my_plugin_styles() {
    wp_enqueue_style('[1]', plugin_dir_url(__FILE__) . 'css/style.css');
}
add_action('wp_enqueue_scripts', 'my_plugin_styles');
Drag options to blanks, or click blank then click option'
Aenqueue_style
Bstyle.css
Cplugin_url
Dmy-plugin-style
Attempts:
3 left
💡 Hint
Common Mistakes
Using the filename instead of a unique handle
Using incorrect function names
3fill in blank
hard

Fix the error in the plugin main file to prevent direct access.

Wordpress
<?php
if (!defined('[1]')) {
    exit;
}
// Plugin code continues here
Drag options to blanks, or click blank then click option'
AABSPATH
BWPINC
CPLUGIN_DIR
DWP_PLUGIN_DIR
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect constants
Not preventing direct access
4fill in blank
hard

Fill both blanks to register a shortcode in the plugin.

Wordpress
<?php
function [1]() {
    return 'Hello, World!';
}
add_shortcode('[2]', '[1]');
Drag options to blanks, or click blank then click option'
Ahello_world_shortcode
Bhello_world
Cmy_shortcode
Dgreeting
Attempts:
3 left
💡 Hint
Common Mistakes
Mismatching function and shortcode names
Using invalid shortcode tags
5fill in blank
hard

Fill both blanks to create a plugin activation hook.

Wordpress
<?php
function [1]() {
    // Activation code here
}
register_activation_hook(__FILE__, '[1]');
add_action('[2]', '[1]');
Drag options to blanks, or click blank then click option'
Amy_plugin_activate
Bactivate_my_plugin
Cinit
Dplugin_loaded
Attempts:
3 left
💡 Hint
Common Mistakes
Using different function names in hook registration
Using wrong hook names

Practice

(1/5)
1. Which file is required as the main entry point for a WordPress plugin?
easy
A. A PHP file with plugin header comments
B. A CSS file for styling the plugin
C. A JavaScript file for plugin scripts
D. An image file for the plugin icon

Solution

  1. Step 1: Understand the main plugin file role

    The main plugin file must be a PHP file that contains header comments describing the plugin. This file acts as the entry point for WordPress to recognize and load the plugin.
  2. Step 2: Differentiate file types in plugin structure

    CSS, JavaScript, and image files are used for styling, scripting, and visuals but are not the main plugin file.
  3. Final Answer:

    A PHP file with plugin header comments -> Option A
  4. Quick Check:

    Main plugin file = PHP with header [OK]
Hint: Main plugin file always has PHP header comments [OK]
Common Mistakes:
  • Choosing CSS or JS files as main plugin file
  • Thinking image files can be main plugin file
  • Ignoring the required plugin header comments
2. Which of the following is the correct way to organize plugin files for better structure?
easy
A. Put all PHP, CSS, and JS files in the root plugin folder
B. Keep only the main PHP file and no folders
C. Place all files inside a single 'assets' folder
D. Separate PHP files into a 'includes' folder and assets into 'assets' folder

Solution

  1. Step 1: Understand folder organization best practices

    Separating PHP files into an 'includes' folder and assets like CSS and JS into an 'assets' folder keeps the plugin organized and easier to maintain.
  2. Step 2: Evaluate other options

    Putting all files in root or a single folder makes the plugin messy. Having no folders limits scalability.
  3. Final Answer:

    Separate PHP files into a 'includes' folder and assets into 'assets' folder -> Option D
  4. Quick Check:

    Organize by type in folders = B [OK]
Hint: Use 'includes' for PHP and 'assets' for CSS/JS [OK]
Common Mistakes:
  • Mixing all files in root folder
  • Putting everything inside 'assets' folder
  • Not using folders at all
3. Given this plugin folder structure:
my-plugin/
  my-plugin.php
  includes/
    functions.php
  assets/
    style.css
    script.js

Which file should contain the plugin header comments?
medium
A. includes/functions.php
B. my-plugin.php
C. assets/script.js
D. assets/style.css

Solution

  1. Step 1: Identify the main plugin file

    The main plugin file is the one in the root folder named after the plugin, here 'my-plugin.php'. This file must have the plugin header comments.
  2. Step 2: Understand roles of other files

    Files in 'includes' and 'assets' folders hold supporting code and styles/scripts but do not contain the plugin header.
  3. Final Answer:

    my-plugin.php -> Option B
  4. Quick Check:

    Main plugin file = my-plugin.php [OK]
Hint: Plugin header is in root PHP file named after plugin [OK]
Common Mistakes:
  • Putting header in includes/functions.php
  • Thinking CSS or JS files hold plugin info
  • Confusing folder files with main plugin file
4. You see this plugin structure:
plugin-folder/
  plugin-folder.php
  includes.php
  assets/
    style.css

What is wrong with this structure?
medium
A. The 'assets' folder should be named 'styles'
B. The main plugin file should be named differently
C. The 'includes.php' file should be a folder named 'includes'
D. There should be no CSS files in the plugin

Solution

  1. Step 1: Check folder vs file naming conventions

    Typically, 'includes' is a folder holding PHP files, not a single PHP file named 'includes.php'. This breaks organization.
  2. Step 2: Validate other options

    The main plugin file name is fine if it matches the folder. 'assets' is a common folder name for CSS/JS. CSS files are allowed.
  3. Final Answer:

    The 'includes.php' file should be a folder named 'includes' -> Option C
  4. Quick Check:

    'includes' must be a folder, not a file [OK]
Hint: 'includes' is a folder, not a single PHP file [OK]
Common Mistakes:
  • Renaming main plugin file unnecessarily
  • Renaming 'assets' folder incorrectly
  • Thinking CSS files are not allowed
5. You want to add language support to your plugin. Which is the best way to organize your plugin files?
hard
A. Add a 'languages' folder for translation files and keep main PHP file in root
B. Put translation files inside the 'assets' folder with CSS and JS
C. Include translation files directly inside the main PHP file
D. Create a separate plugin just for translations

Solution

  1. Step 1: Understand language file organization

    WordPress plugins commonly use a 'languages' folder to store translation files (.mo, .po). This keeps translations separate and organized.
  2. Step 2: Evaluate other options

    Putting translations in 'assets' mixes code and assets. Including translations in PHP file is not practical. Separate plugin for translations is unnecessary.
  3. Final Answer:

    Add a 'languages' folder for translation files and keep main PHP file in root -> Option A
  4. Quick Check:

    Use 'languages' folder for translations [OK]
Hint: Use 'languages' folder for translations, not 'assets' [OK]
Common Mistakes:
  • Mixing translation files with CSS/JS
  • Embedding translations inside PHP code
  • Creating separate plugin for translations
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