创建自定义元框在WordPress中抛出PHP警告错误

时间:2020-01-27 作者:Krys

我试图在我的WordPress测试网站中创建一个元框作为插件。

我正在使用Udemy的一个教程中安装的自定义主题,该教程名为“WooCommerce&;WordPress电子商务开发”;“店面”。我已经复制了父主题,并按照教程说明创建了子主题。

我没有按照教程中的指导实现“高级自定义字段”插件,而是决定创建自己的自定义插件来创建元框。

我在wp内容/插件中添加了一个文件夹(简单主页字段),插件文件作为简单主页字段。php

我已激活插件,并具有以下代码:

function add_homepage_meta_box() {
 add_meta_box(
    \'homepage_meta_box\',    // $id
    \'Banner Fields\',        // $title
    \'homepage_meta_box_display\',    // $callback
    \'page\',     // $screen
    \'normal\',   // $context
    \'high\'      // $priority
 );
}
add_action(\'add_meta_boxes\', \'add_homepage_meta_box\');
我希望这能起作用,但它抛出了这个错误,我不知道为什么或如何修复它:

enter image description here

Warning: call_user_func() expects parameter 1 to be a valid callback, function \'homepage_meta_box_display\' not found or invalid function name in C:\\wamp64\\www\\carolinaspa\\wp-admin\\includes\\template.php on line 1343

为什么这会干扰/冲突此功能??

任何帮助都将不胜感激。谢谢

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

因为add_meta_box 函数需要回调函数名,在您提供的情况下,回调函数名为homepage_meta_box_display. 但是,您还没有定义该函数。

回调函数基本上用于输出元框内容,即您希望在正在创建的元框中显示的任何内容。因此,您应该以如下所示的方式定义函数:

function homepage_meta_box_display( $post, $metabox ) {

    echo \'Whatever goes here shows up in the metabox\';
}
您可以将其更改为希望metabox显示的任何内容。其他参考资料:https://developer.wordpress.org/reference/functions/add_meta_box/. 这一页上也有一个例子:https://developer.wordpress.org/reference/functions/add_meta_box/#div-comment-342.