简体   繁体   English

在WordPress插件功能下加载.php文件

[英]Loading .php file under WordPress plugins function

I have a WordPress plugins script 我有一个WordPress插件脚本

<?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 该文件保存在\\ wp-content \\ plugins \\ admin-menu \\ new_menu.php下

Now in the function add_page() I am echoing the html. 现在在函数add_page()中,我正在回显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. 我不想这样做,是否可以在不回显脚本的情况下在函数下加载.php页面。

Say something like 说像

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

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: 您可以包含文件,也可以将其输出存储在var中:

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. 实际上,我在WP中使用了这些技术来通过AJAX输出HTML。

我得到了答案

include('content-home.php');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM