首页 > 解决方案 > 如何在 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.

任何帮助将不胜感激。

标签: wordpressoopthemes

解决方案


将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();

推荐阅读