2

I have a WordPress plugins script

<?php
/*
Plugin Name: Saswat Routroy
Plugin URI: http://www.maheshchari.com/
Description: Description of my plugin
Author URI: http://www.maheshchari.com/
*/
class new_menu {

    function new_menu()
    {
        add_action('admin_menu', array(&$this, 'my_admin_menu'));
    }

    function my_admin_menu()
    {   //create a main admin panel
        //create a sub admin panel link above
        add_menu_page('CMS', 'CMS', 'administrator', 8, array(&$this,'overview'));
        add_submenu_page(8, 'View CMS Page', 'View CMS Page', 'administrator', 1, array(&$this,'view_page'));
        add_submenu_page(8, 'Add CMS Page', 'Add CMS Page', 'administrator', 2, array(&$this,'add_page'));
        //These functions adds sub menu for different kinds of admin panel on back end
        add_options_page('Pages Options', 'Saswat  Plugin', 'administrator', basename(__file__),array(&$this, 'my_plugin_options'));
        add_posts_page('Pages posts', 'Saswat  Plugin', 'administrator', basename(__file__),array(&$this, 'my_plugin_posts'));
        add_media_page('Pages media', 'Saswat  Plugin', 'administrator', basename(__file__),array(&$this, 'my_plugin_media'));
        add_pages_page('Pages pages', 'Saswat  Plugin', 'administrator', basename(__file__),array(&$this, 'my_plugin_pages'));
        add_users_page('Pages users', 'Saswat  Plugin', 'administrator', basename(__file__),array(&$this, 'my_plugin_users'));
        add_management_page('maheshchari', 'Mahesh  Plugin', 'administrator', basename(__file__),array(&$this, 'my_plugin_tools'));
        add_theme_page('maheshchari', 'Mahesh  Plugin', 'administrator', basename(__file__),array(&$this, 'my_plugin_themes'));

    }


    function overview()
    {
        echo '<h2>My Wordpress Plugin Overview</h2>';
    }

    function view_page()
    {
        echo '<h2>My Wordpress Plugin Settings</h2>';
    }

    function add_page()
    {
        //echo '<h2>My Wordpress Plugin Generel</h2>';
        echo "<form method='POST' action=''>
    <ul>
        <li><label for='fname'>Family Name (Sir Name)<span> *</span>: </label>
        <input id='fname' maxlength='45' size='10' name='fname' value='' /></li>    

        <li><label for='lname'>Last Name<span> *</span>: </label>
        <input id='lname' maxlength='45' size='10' name='lname' value='' /></li>
        <li><label for='lname'>Last Name<span> *</span>: </label>
        <input type='submit' maxlength='45' size='10' name='lname' value='' /></li>
    </ul>
</form>";
    }
    function my_plugin_options()
    {
        echo '<h2>My Wordpress Plugin Options</h2>';

    }
    function my_plugin_posts()
    {
        echo '<h2>My Wordpress Plugin posts</h2>';
    }
    function my_plugin_media()
    {
        echo '<h2>My Wordpress Plugin media</h2>';
    }
    function my_plugin_pages()
    {
        echo '<h2>My Wordpress Plugin pages</h2>';
    }
    function my_plugin_users()
    {
        echo '<h2>My Wordpress Plugin users</h2>';
    }

    function my_plugin_tools()
    {
        echo '<h2>My Wordpress Plugin tools</h2>';
    }

    function my_plugin_themes()
    {
        echo '<h2>My Wordpress Plugin themes</h2>';
    }


}


$mybackuper = &new new_menu();//instance of the plugin class

?>

The file is kept under \wp-content\plugins\admin-menu\new_menu.php

Now in the function add_page() I am echoing the html. I don't want to do this, is there way that I can load a .php page under the function without echoing the script.

Say something like

<?php get_template_part( 'content-home' );?>

2 Answers 2

1

I'm not sure understand you well. Here is a way to store an output without echo:

public $contents_add_page = '';

function add_page()
{
    ob_start();

    //echo '<h2>My Wordpress Plugin Generel</h2>';
    echo "<form method='POST' action=''>
<ul>
<li><label for='fname'>Family Name (Sir Name)<span> *</span>: </label>
<input id='fname' maxlength='45' size='10' name='fname' value='' /></li>    
<li><label for='lname'>Last Name<span> *</span>: </label>
<input id='lname' maxlength='45' size='10' name='lname' value='' /></li>
<li><label for='lname'>Last Name<span> *</span>: </label>
<input type='submit' maxlength='45' size='10' name='lname' value='' /></li>
</ul>
</form>";

    $this->contents_add_page = ob_get_contents();
    ob_end_clean();
}

You can include a file and store its output in a var too:

ob_start();
include DIR . '/content-home.php';
$contents            = ob_get_contents();
ob_end_clean();

Indeed I use these techniques in WP to output HTML via AJAX.

Sign up to request clarification or add additional context in comments.

1 Comment

@saswat Good to know that you achieved your goal!
0

i got the answer

include('content-home.php');

1 Comment

+1 really worked with that simple include Mate please share your experience. Thanks! It's very interesting! o/\o

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.