无法扩展某些核心类

时间:2021-01-25 作者:MoSaber

我对wordpress开发相对较新,我正在尝试扩展中的“Walker\\u Category\\u Checklist”类/wp-admin/includes/class-walker-category-checklist.php 为其自定义wp_terms_checklist()wp_category_checklist() 但当我尝试require_once 指向我的儿童主题扩展类的链接function.php 我得到这个错误和网站没有加载!

x“;致命错误:在..中找不到类“Walker\\u Category\\u Checklist”"E;

是因为“wp admin/includes/”目录中的这个类文件吗?如果是,那么如何扩展?

wordpress版本:5.6-php版本:7.2

提前谢谢,干杯,莫。

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

我想我不能直接扩展Walker\\u Category\\u清单,因为它在wp admin dir中。即使它是为了;输出无序的类别列表复选框“!!”;!!与it等类似的类别。”;Walker\\u Nav\\u菜单;wp include witch is中现有的应为;Walker\\u Category\\u检查表;我想。。我找到的答案是扩展父类;“Walker”;“到”;my\\u Walker\\u Category\\u清单“;然后从“中复制代码”;Walker\\u Category\\u检查表;然后对它进行自定义,如果一切正常,就这样做。

SO网友:Tom J Nowell

您可以扩展它,但类定义和任何使用它的代码都不能在管理区域之外运行。

将类包装在以下条件中:

if ( is_admin() ) {
    ...
}
如果您试图在前端或其他非管理区域使用此功能,请不要这样做。

通常,WordPress使用的类不应扩展,walker类和WP_Widget 是值得注意的扩展。

此外,将类放在自己的文件中也是一种很好的做法。