使用对象保留变量的值,并使用自定义操作将其打印出来。
在您的主题中functions.php
, 创建类,或者更好:将类移动到单独的文件中。
class PassCheck
{
private $passed = \'no\';
public function check()
{
if ( is_user_logged_in() )
$this->passed = \'yes\';
}
public function print_pass()
{
echo $this->passed;
}
}
然后注册回调:
$passcheck = new PassCheck;
add_action( \'init\', [ $passcheck, \'check\' ] );
add_action( \'print_pass\', [ $passcheck, \'print_pass\' ] );
在模板中,只需调用适当的操作:
do_action( \'print_pass\' );
这样,模板对类没有静态依赖关系:如果您决定删除该类或为该操作注册一个完全不同的回调,主题将不会中断。
您还可以移动check()
回调到另一个操作(如wp_loaded
) 或者稍后将其分为另一个类。
经验法则是:模板(视图)应该尽可能与业务逻辑解耦。他们不应该知道类或函数名。这在WordPress的架构中并不完全可行,但仍然是一个很好的调节想法。