如何在WPMVC中添加新的菜单/子菜单页面?

时间:2012-08-06 作者:Rutwick Gangurde

我对WPMVC. 遵循并完成了创建插件的教程。现在我正在尝试添加一个搜索页面进行搜索Venues (这来自他们的例子!)。此页面应显示为Venues 菜单我创建了一个名为search.phpapp/views/admin/venue/search 文件夹我现在该怎么办?谷歌搜索没有多大帮助!

欢迎对此提供任何帮助(以及任何其他noob应该学习的东西,以便通过WPMVC变得更好)!

2 个回复
SO网友:Rutwick Gangurde

最后,在深入挖掘核心文件之后,我找到了添加submenu 页如果有人被卡住了,这里有一个分步解决方案!

假设您想添加一个名为“Sample”的子菜单页。

1、首先app/config/bootstrap.php 文件(如果不存在,则必须手动创建),添加以下代码。这会将新页面添加为submenuvenues 父菜单项:

<?php
//sample is appended to the venues array, meaning it will be a submenu page of venues
MvcConfiguration::append(array(
\'AdminPages\' => array(
    \'venues\' => array(
        \'add\',
        \'delete\',
        \'edit\',
        \'sample\'
        )
    )
));
?>
2。接下来,在app/controllers/admin/admin_venues_controller.php 添加以下函数。请注意,它已命名sample, 与上面数组中的页面名称相同。

function sample() {
    //this array will be available as $values in the sample.php file
    $vals = array(\'great\' => \'Done\', \'nice\' => \'Finally\');
    $this->set(\'values\', $vals);
}
3。现在,在实际的页面内容文件中,创建sample.php (注意名称)文件app/views/admin/venues/ 文件夹

<?php
    echo \'<h2>\'.MvcInflector::titleize($this->action).\'</h2>\';
    //remember the values variable set in the controller? 
    foreach($values as $i => $val){ ?>
        echo $i.\' = \'.$val;
    }
?>
差不多就是这样!我仍然坚持创建顶级菜单页面,而不必创建模型(默认情况下,模型会获得顶级页面)。将在我解决它时更新此答案!

注意:给WPMVC的创建者TomBenner发邮件也没用!;)

SO网友:Prabhu Chelladurai

在插件主文件中添加操作挂钩plugin_name.php, 提供菜单的详细信息。当然,您可以有一个管理菜单,而无需生成模型。

以下是的代码/plugins/my-plugin/my_plugin.php

add_action( \'admin_menu\', \'my_custom_menu_page\' );    
function my_custom_menu_page() {
    add_menu_page( 
        \'My Menu\', 
        \'My Menu\', 
        \'manage_options\', 
        \'myplugin/myplugin-admin.php\', 
        \'\', 
        plugins_url( \'myplugin/images/icon.png\' ), 
        6 
    );
}
您可以将图像位置保留为空,以便在自定义菜单中使用默认的WordPress图标。

当然,您可以以相同的方式添加子菜单,或者使用bootstrap.php

在下图中,我用这种方法添加了“我的菜单”。

enter image description here

结束

相关推荐

MVC架构下的WordPress插件开发,如何实现?

我认为,wordpress插件架构不是MVC。所以我想在WordPress插件开发中使用/执行MVC架构(如cakephp、codeIgniter)。如何在plguin开发中使用它们。WordPress支持CakePHP或其他框架吗?