将外部文件作为函数引用

时间:2013-05-03 作者:William

在我的功能中。php我有以下代码:

add_action( \'admin_menu\', \'jp_create_admin_pages\' );

function jp_create_admin_pages()
{
    add_menu_page(
        \'Members\',
        \'Members\',
        \'manage_options\',
        \'members\',
        \'admin-members.php\');
}
在同一个文件夹中,我有另一个名为admin members的文件。php,代码如下:

<span>Hello Admin World!</span>
但是,我收到一个PHP错误,说这是一个无效的回调(当我用functions.PHP中的函数名替换“admin members.PHP”参数时,它会起作用)。

如何将外部文件引用为回调以便正常工作?

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

无法。请创建加载该文件的函数:

function load_admin_page_file()
{
    require \'admin-members.php\';
}
然后使用该函数名作为回调参数。

在PHP 5.3中,可以使用lambda:

add_menu_page(
    \'Members\',
    \'Members\',
    \'manage_options\',
    \'members\',
    function() { require \'admin-members.php\'; }
);

SO网友:kaiser

编程和机器

由于机器“愚蠢”,因此需要对它们进行编程。编程语言不像人类所说的语言那样作为程序/机器工作,因为它们不能解释人类的想法。他们需要一个明确而独特的建议,即我们向他们订购什么以及什么时候订购。例如,如果您定义功能getBlock() 两次,机器会throwException 处理该故障并将其错误通知人员。机器甚至不会怀疑它是否应该return 你可以用一块积木或一个实心正方形的东西。因此,这是不可能的(在这种情况下),您必须坚持这样一条规则,即程序需要一个明确的建议,为其提供一些在其预期范围内的参数。

边界内所需的参数

正如程序所述,它需要callback, 要么是function 或amethod 属于array( \'ObjectName\', \'methodName\' ). 所以你必须用一种或另一种来喂养它。

解决方法由于您可以在函数或方法中执行几乎所有操作,您还可以建议它加载您的文件。根据加载方式的不同,您可以requireinclude 该文件或redirect 收件人:

function wpse98197_redirect_admin_page()
{
    # You can simply load them...
    # (Both are equal in what they do, but not in how they handle errors)
    // require_once \'admin-members.php\';
    // include_once \'admin-members.php\';

    # Or replace the current page with the desired file
    exit( wp_redirect( get_stylesheet_uri().\'admin-members.php\' ) );
}

结束

相关推荐

我使用了一个隐藏wp-admin的插件,但它也将wp-admin隐藏为admin-如何恢复?

我使用了一个插件,它隐藏了wp-admin并做了很多其他事情,但它也为admin用户隐藏了wp-admin(可能是由于我的一些错误设置)-如何恢复?我删除了插件的文件夹以返回到wp admin,但一旦我激活它,它就会再次开始隐藏admin内容。(它似乎保留了设置,因为它在新安装时激活时不会立即隐藏管理面板。我必须更改wp admin中的设置,使其隐藏wp admin。)