首先,要做到这一点register_metaboxes()
方法需要是静态的:
public static function register_metaboxes()
{
}
然后,为回调传递一个具有完整类名(包括命名空间)的数组:
$args = array(
\'register_meta_box_cb\' => [ \'FrameWork\\Helper\\Metabox\', \'register_metaboxes\' ],
);
如果出于任何原因,
register_metaboxes()
不是静态的(即,您正在使用
$this
) 那么仅仅传递类名是不够的,您需要传递一个类的实例:
namespace FrameWork\\CPT;
class CPT {
public function register_custom_post_type()
{
$meta_box_helper = new FrameWork\\Helper\\Metabox();
$args = [
\'register_meta_box_cb\' => [ $meta_box_helper, \'register_metaboxes\' ],
];
register_post_type( \'plugin-cpt\', $args );
}
}