在ADD_MENU()中需要/包含php文件

时间:2019-01-21 作者:Charlie Wedel

我正在创建一个自定义WP管理栏菜单项,下拉菜单中包含自定义HTML。关于这一点:https://codex.wordpress.org/Class_Reference/WP_Admin_Bar/add_menu

我想使用的HTML非常广泛,因此我为该HTML创建了一个单独的php文件。然后,我试图将该PHP文件包含在菜单项中,但它没有正确打印/回显。现在,菜单项中的所有显示都是1,稍后将在页面的DOM中打印内容。

以下是我的代码:

$admin_bar->add_menu( 
    array(
        \'id\'    => \'dh_row_layouts-content\',
        \'parent\' => \'dh_row_layouts\',
        \'meta\'  => array(        
            \'class\' => \'dh_hack\',
            \'html\' => include(\'docs/row_layouts.php\'),
        ),
    )
);
有什么想法吗?

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

您可以打开输出缓冲,include (和求值)PHP文件,并将(求值代码的)输出保存在变量中,如下所示:

ob_start();
include \'docs/row_layouts.php\';
$html = ob_get_clean();
那就用吧\'html\' => $htmlmeta 调用$admin_bar->add_menu().

或者,如果您不需要评估文件中的任何PHP代码,您可以使用file_get_contents():

\'html\' => file_get_contents( \'docs/row_layouts.php\' )
您可能需要或更好地使用完整的绝对路径。

相关推荐

WP-ADMIN:“对不起,您不能访问此页面。”

两周后不使用我们的WP站点,登录/wp-admin/ 出现白屏错误:抱歉,不允许您访问此页面。我有:重命名plugins 到plugins.temp.通过phpMyAdmin创建了一个新的管理员用户。新用户已user_meta 的作用a:1:{s:13:"administrator";s:1:"1";}.</已重命名themes 到themes.temp.</删除核心WordPress文件,并替换为新上载的文件</已替换.htaccess 使用默认