• WordPress Example Plugin
    by ShibaShake on

    The Shiba Example Plugin is an empty plugin to help you get started on writing a WordPress plugin.

    The Shiba Example Plugin contains -

    • A plugin activation hook that runs when a plugin is first activated.
    • Plugin initialization functions.
    • An example plugin sub-menu page.
    • An uninstall.php file that runs when your plugin is uninstalled. Use this to clear out options (delete_option) or databases created by your plugin.
    • Example localization or language translation hooks. This enables others to easily add language translation capabilities to your plugin.
    • A plugin class wrapper which wraps around your plugin functions so that there will not be any function name conflicts with other plugins or themes in the user’s environment.

    Adding a Plugin Menu Page

    There is a section in the Shiba Example Plugin that adds a menu page to your WordPress Dashboard Settings menu.

    function shiba_example_add_pages() {
     
    	// Add a new submenu
    	$addpage = add_options_page(	__('Shiba Example', 'shiba_example'), __('Shiba Example', 'shiba_example'), 
    									'administrator', 'shiba_example', 
    									array(&$this,'add_shiba_example_page') );
    	add_action("admin_head-$addpage", array(&$this,'add_shiba_example_admin_head'));
    	}

    The function call add_options_page, adds the sub-menu called ‘Shiba Example’ to the Settings tab. Visiting the sub-menu will run the function add_shiba_example_page. If you want to add your plugin menu to a different WordPress tab, below are the other available options -

    • add_management_page – Adds a menu to the Tools tab. [tools.php]
    • add_options_page – Adds a menu to the Settings tab. [options-general.php]
    • add_theme_page – Adds a menu to the Appearance tab. [themes.php]
    • add_plugins_page – Adds a menu to the Plugins tab. [plugins.php]
    • add_users_page – Adds a menu to the Users tab. [users.php or profile.php]
    • add_dashboard_page – Adds a menu to the Dashboard tab (topmost). [index.php]
    • add_posts_page – Adds a menu to the Posts tab. [edit.php]
    • add_media_page – Adds a menu to the Media tab. [upload.php]
    • add_links_page – Adds a menu to the Links tab. [link-manager.php]
    • add_pages_page – Adds a menu to the Pages tab. [edit.php?post_type=page]
    • add_comments_page – Adds a menu to the Comments tab. [edit-comments.php]

    Note – All of these functions call the add_submenu_page function.

    You can also create your own top-level menu by following these steps from the WordPress Codex.

    Adding Localization or Language Translation Capabilities

    One of the best tutorials I have come across on localizing your plugin can be found on Urban Giraffe.

    Here is the official tutorial from the WordPress Codex.

    Future Additions

    Please let me know if there are common plugin functions that I have missed, or if there are better ways to achieve some of the plugin functions described above.

    Related Articles

    4 Comments
    1. Absolutly great . And I agree that a simple working example of an options page would make it perfect ! thanks for this great plugin !

      3:26 am on April 17th, 2012 Reply
    2. Thx for your example plugin and indeed I miss something. It would be nice to have a example form to save some simple vars for a plugin. Just to get started and understand how the workflow is. This is what I miss. But anyway your work abolutely saves me hours to get started.

      5:29 am on October 31st, 2011 Reply
      • Thanks Bonco. That is a very good suggestion.

        I have put it on my to-do list and will add it on the next iteration of the plugin.

        11:13 am on November 8th, 2011 Reply
    3. Thanks for this wordpress example plugin!

      12:24 pm on August 23rd, 2011 Reply

    Leave a Reply

    Your email address will not be published.

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

    search button search button
    rss