wordpress - 如何在 WordPress 中访问成员函数到模板文件?
问题描述
我正在尝试构建一个包含很多自定义项的 WordPress 主题。我正在尝试使用面向对象的方法来构建它,这样我就可以创建函数而不必担心将它们命名为唯一,而且我认为将来引入更新会更容易。
我面临的问题是,当我尝试使用返回错误的对象访问其中一个成员函数时。
我尝试创建一个全局对象来访问成员函数,但它会引发如下错误:
Fatal error: Uncaught Error: Call to a member function distribute_numbers() on null.
函数.php
if( ! defined( 'ABSPATH' )) {
exit;
}
/**
* Theme Calculations
*/
require get_template_directory() . '/inc/calc.php';
公司/calc.php
class Theme_Calc{
public function distribute_numbers(){
$array = [10, 9, 8, 6, 4,2];
return $array;
}
}
global $obj_calc;
$obj_calc = new Theme_Calc();
头版.php
</head>
<body>
<?php
global $obj_calc;
//$nums = Theme_Calc::distribute_numbers();
$nums = $obj_calc->distribute_numbers();
?>
这是迄今为止我尝试过的简化版本,每次我尝试访问模板文件上的成员函数时,它都会给我这个错误:
Fatal error: Uncaught Error: Call to a member function distribute_numbers() on null.
任何帮助将不胜感激。
解决方案
将distribute_numbers更改为静态成员函数:
class Theme_Calc{
public static function distribute_numbers(){
$array = [10, 9, 8, 6, 4,2];
return $array;
}
}
并在 front-page.php 中调用它
Theme_Calc::distribute_numbers();
推荐阅读
- sockets - 如何自动测试网络 (TCP/IP) 应用程序?
- python - 根据第 2 列的条件,使用第 1 列的输入创建新的 df 列
- mysql-workbench - MySQL Workbench:当我编写存储过程时,美化/重新格式化选项不起作用
- javascript - 如何将 JSON 对象从 Javascript 传递到 Python CGI 脚本
- javascript - 在 Node.js 中声明多个 module.exports,TypeError: Router.use() requires a middleware function but got a Object
- azure - 如何在 Azure 中创建负载均衡器(免费试用)
- spring-boot - Spring批处理集成:java.lang.ClassCastException:org.springframework.integration.file.FileReadingMessageSource 无法转换为 java.io.File
- python-3.x - 名称和数据的多个元组中的数据统计
- asp.net-mvc - 为什么我们在 MVC 表单认证中使用 setAuthCookies
- arrays - Robot Framework - 如何在行列表中获取值