Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

WordPress How to Build a WordPress Plugin Building a WordPress Plugin Settings Page Creating a Plugin Settings Page

Now hook the plugin menu to the admin menu ?Please help can't get it right

add_action('admin_menu','my_plugin_menu');

plugin.php
<?php

function my_plugin_menu() {

    // Page Title: My Plugin Settings Page
    // Menu Title: My Plugin
    // Slug: Same as menu name, but with hyphens instead of spaces
    // Make sure user has ability to manage plugin options
    // my_plugin_options_page() is the function for what displays on the options page

    add_options_page(
    'My Plugin Settings Page',
    'My Plugin',
    'manage_options',
    'my-plugin',
    'my_plugin_options_page'
    );
}
function my_plugin_options_page ( ){

  echo 'Welcome to my plug setting page',

  add_action('admin_menu','my_plugin_menu');

 add_action('admin_menu', 'my_plugin_menu');

}


?>

2 Answers

Hi Ashley,

A couple of things going on there, you have the add_action in the wrong place, it should be at the top of the file on its own and only be declared once.

Also little syntax error on the my_plugin_options_page function.

These are really small things that are easily done so don't worry about them. It takes a while to get this stuff really cemented in. You are doing great on the plugin course!

Here is my go at the challenge for your reference.

<?php

add_action( 'admin_menu', 'my_plugin_menu' );

function my_plugin_menu() {

    // Page Title: My Plugin Settings Page
    // Menu Title: My Plugin
    // Slug: Same as menu name, but with hyphens instead of spaces
    // Make sure user has ability to manage plugin options
    // my_plugin_options_page() is the function for what displays on the options page

  add_options_page(
        'My Plugin Settings Page',
        'My Plugin',
        'manage_options',
        'my-plugin',
        'my_plugin_options_page'
  );

}

function my_plugin_options_page() {
  echo "Welcome to my plugin settings page.";
}

?>

Hope this is helpful :)

Thank you