为什么在函数.php中不能使用is_home()

时间:2012-03-29 作者:Kegan Quimby

我正在编写脚本。php通过函数。php。这是在脚本中。但是由于某种原因,wordpress无法识别is\\u home()。我已尝试重置查询,但没有效果。我是否连接到了正确的功能?

if(is_home()){

function my_scripts_method2() {
    wp_register_script(\'cycle\', get_template_directory_uri() . \'/js/cycle.js\', array(\'jquery\'));
    wp_enqueue_script(\'cycle\');
}
add_action(\'wp_enqueue_scripts\', \'my_scripts_method2\');

function my_scripts_method() {
    wp_register_script(\'homepage\', get_template_directory_uri() . \'/js/homepage.js\', \'cycle\');
    wp_enqueue_script(\'homepage\');
}
add_action(\'wp_enqueue_scripts\', \'my_scripts_method\');
}

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

在运行时。php是在启动过程中包含的,WordPress不知道查询的内容,也不知道页面的性质。is_home 将返回false。

将代码包装在函数中,并由wp 钩子,它出现在全局查询对象被数据水合之后。

add_action( \'wp\', \'wpse47305_check_home\' );
function wpse47305_check_home() {
    if ( is_home() )
        add_action( \'wp_enqueue_scripts\', \'my_scripts\' );
}

function my_scripts() {
    ...
}
Thewp_enqueue_scripts 操作在之后运行wp.

http://codex.wordpress.org/Plugin_API/Action_Reference#Actions_Run_During_a_Typical_Request

SO网友:gtamborero

尝试使用$_SERVER[REQUEST_URI] . 它对我有用;)在我的例子中,我有一个脚本,用于仅在前面对排队脚本收费:

if ($_SERVER[REQUEST_URI]==\'/\'){
    add_action(\'wp_enqueue_scripts\', \'***********\');
}
回显$_SERVER[REQUEST_URI] 你将看到他对你的每一页的价值,这样你就可以使用它;)

结束