如何将代码从header.php传递到footer.php

时间:2012-10-16 作者:Poe

我正在用标题中的值初始化一个变量。php文件。我想访问页脚中的该值。php,但经检查不存在。示例:

header.php

$status = true;

footer.php

var_dump( $status ); // is null
在页脚中做某事的最佳实践是什么。php或其他具有相同行为的文件。

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

避免使用全局变量,它们可能会被其他代码覆盖。可以将helper函数与静态内部变量一起使用。示例代码:

function wpse_69365_var_storage( $var = NULL )
{
    static $internal;

    if ( NULL !== $var )
    {
        $internal = $var;
    }

    return $internal;
}

// first call:
wpse_69365_var_storage( 4 );

// later call:
echo wpse_69365_var_storage(); // print 4

SO网友:kaiser

基于@toscho片段,这里有一个真实的例子。假设您不需要直接从模板文件内部访问var。

function wpse_69365_var_storage()
{
    static $internal;

    if ( \'wp_head\' === current_filter() )
    {
        if ( /* Condition is met */ )
            return $internal = 4; // Set to what you need.

        return \'default_value\';
    }

    return print $internal;
}
// Call in header.php:
add_action( \'wp_head\', \'wpse_69365_var_storage\' );
// Call in footer.php:
add_action( \'wp_footer\', \'wpse_69365_var_storage\' );

结束

相关推荐