• I am working on a small plugin, that will have to fetch some data from the database and display it on the page. I’ve setup the plugin folders and created a first class that creates custom sql tables on plugin install:

    register_activation_hook( __FILE__, array( ‘MyPlugin’, ‘install’ ) );

    which goes just alright. So this is where I get lost, because now what I need to do is create a new page, say todolist.php inside my plugin (which I can surely do) and add default wp header, footer and sidebar info to make it look as part of the website. I feel I miss some major understanding of how plugins work in WP, because I failed to find this info, but instead lots of articles about hooks and filters. Any advice would be appreciated!

Viewing 2 replies - 1 through 2 (of 2 total)
  • Heya

    Have a look at https://codex.www.ads-software.com/Plugin_API/Filter_Reference/page_template

    This should point you in the right direction.

    User the structure in your theme’s index.php / single.php etc. to achieve your desired aesthetic.

    All the best!

    Moderator bcworkz

    (@bcworkz)

    Curiously, ‘page_template’ filter does not show up in the new code reference when searched. It looks like ‘theme_page_templates’ could be used, even from plugins.

    If you have only one page needing your template, another approach would be to create the page upon activation, initially letting the page use the default template. Then alter the page’s template postmeta, keyed as ‘_wp_page_template’ to point to your theme template. You will need to include the path to the file since templates are expected to be in the theme folder. Use plugin_dir_path() to get the right path.

    You can get the theme parts to load on your template by calling get_header(), get_footer(), etc. When you activate and add a page, it’d be a good idea to check if it exists from a previous activation because people deactivate/reactivate plugins for a number of reasons. You ought to have a more reliable way of identifying your page other than title. Something in unique content, or post meta, etc.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Create a custom page inside my plugin’ is closed to new replies.