在所有WordPress页面上使用变量的最佳方式

2022-08-30 23:19:22

我正在构建一个自定义主题,其中包含许多我希望在整个过程中使用的变量。

例:

$tv     = $options['tv'];
$movies = $options['movies'];
$print  = $options['print'];
//....and about 50 more.

为此,我只是将它们全部放在一个名为vars的文件中.php然后在标题中.php我包含它的主题...

require_once('vars.php');

虽然这确实有效,但感觉不是最好的方法。我读过很多场合使用全局变量(大概在函数中.php)不是一个好主意,但这是真的吗?

但是,如果在函数中使用全局变量是可以的.php(甚至很多)这是正确的方法吗?

global $tv;
$tv     = $options['tv'];

global $movies
$movies = $options['movies'];

global $print
$print  = $options['print'];

答案 1

最好的方法是在函数中显式定义所有变量.php或在插件的主插件文件中定义所有变量。我已经验证这是最流行的插件(包括akismet)使用的方式。具体来说,您需要执行此操作。

define( MYVAR_TV, $options['tv'] );
define( MYVAR_MOVIES, $options['movies'] );
define( MYVAR_PRINT, $options['print'] );

在这些之后,您可以随时随地使用它们

echo MYVAR_TV;

希望它有帮助。


答案 2

使用全局变量是可以的,但不鼓励(你可以在这里阅读更多 PHP 中的全局变量被认为是不好的做法吗?如果是这样,为什么?您可以考虑单例实现:

<?php
class GlobalVariable {
    /**
     * @var array
     */
    public static $option = [];
}

// You can set the variable using this way
GlobalVariable::$option['movies'] = 1;

// And get the variables using that array
print_r(GlobalVariable::$option);

希望这可以帮助你。


推荐