Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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