当我在首页时,我正试图从“functions.php”加载一个脚本 我在阅读选项中设置了一个名为“home”的静态页面 主页正确加载“front-page.php”模板,但条件脚本加载不起作用。
这就是我在“functions.php”文件中的内容:
wp_register_script('nivoslider', get_bloginfo('template_url').'/js/libs/nivoslider.js', false, false, true);
if (is_front_page()) {
wp_enqueue_script('nivoslider');
}
为什么不按预期加载?这里发生了什么?
答案 0 :(得分:1)
$isfrontpage = false;
if( is_front_page() || is_home() ) {
$isfrontpage = true;
} else {
$current = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$site = get_site_url();
$site = str_replace('http://', '', $site);
$site = str_replace('https://', '', $site);
$site = str_replace('www', '', $site);
if( $site == $current || $site . '/' == $current ){
$isfrontpage = true
}
}
答案 1 :(得分:0)
来自Codex -
当显示主博客页面时,它返回TRUE 设置 - >阅读 - >首页显示设置为“您的最新帖子”, 或者当设置为“静态页面”并且“Front Page”值为 当前页面正在显示。
将其设置为使用首页模板并不会使其成为首页。当上述任一条件成立时,它是首页。因此,对于您创建的此页面,两者都必须为false。
另外,这是仅仅包含在functions.php的内联中,还是实际上是在挂头?
答案 2 :(得分:0)
is_front_page();
将无法在functions.php中正常工作,因为在能够检测到“front_page.php”之前,functions.php已初始化
答案 3 :(得分:0)
这是排队脚本的正确方法:
<?php
add_action( 'wp_enqueue_scripts', 'my_custom_enqueue_scripts', 5 );
function my_custom_enqueue_scripts(){
wp_register_script('nivoslider', get_bloginfo('template_url').'/js/libs/nivoslider.js', false, false, true);
if (is_front_page()) {
wp_enqueue_script('nivoslider');
}
}
?>