我只想在主页上包含一个自定义内联js。我还没有从阅读部分设置主页。我在用家。php文件。
function print_my_inline_script() {
if (is_home() && wp_script_is( \'jquery\', \'done\' ) ) {
?>
<script type="text/javascript">
jQuery(document).ready(function($){
$(\'.carousel\').carousel();
$(\'.item\').hover(function(e){
$(this).find(\'.summary\').stop().fadeTo(\'fast\',1);
},function(){
$(this).find(\'.summary\').stop().fadeOut(\'fast\');
});
});
</script>
<?php
}
}
add_action( \'wp_footer\', \'print_my_inline_script\' );
这行不通。
is_front_page()
也不起作用。
我已经做了<?php wp_reset_query(); ?>
循环后。
我还有一个问题。我知道家。页面覆盖index.php
并用作主页。但我不想让我的用户在更改中的选项时感到困惑reading
部分
我找到了这个,
update_option( \'page_on_front\', $post->ID );
update_option( \'show_on_front\', \'page\' );
但它需要一个ID,我没有任何页面,所以我没有任何ID。
所以,我需要一种方法来设置检查用户是否在home.php
(主页)和使用主页之后。php覆盖阅读部分选项,有什么解决方法吗?
SO网友:Chip Bennett
第一个问题:
我只想在主页上包含一个自定义内联js。我还没有从阅读部分设置主页。我在用家。php文件。
我假设你所说的主页实际上是指网站首页。那样的话,你真的不在乎is_home()
或home.php
, 因为这些适用于blog posts index, 无论您是在网站首页还是其他页面。
另请参见:
我还有一个问题。我知道家。页面覆盖索引。php和用作主页。但我不想让我的用户在阅读部分更改选项时感到困惑。
同样,这里的混乱将主页视为站点首页,而不是博客帖子索引。提到the Template Hierarchy for site front page display 请进一步解释。
如果选择正确的条件将脚本排入队列,则用户读取设置不会产生影响。
第二个问题:
回调中的此条件:
if ( is_home() && wp_script_is( \'jquery\', \'done\' ) )
is_home()
: 您需要使用is_front_page()
, 如果您打算以网站首页为目标wp_script_is( \'jquery\', \'done\' )
: 这似乎没有必要;您只需将脚本注册到jquery
作为一种依赖关系,我发现了这一点,update_option( \'page_on_front\', $post->ID );
update_option( \'show_on_front\', \'page\' );
但它需要一个ID,我没有任何页面,所以我没有任何ID。所以,我需要一种方法来设置检查用户是否在家。php(主页)和自使用主页以来。php覆盖阅读部分选项,有什么解决方法吗?
这本质上是,_doing_it_wrong()
. 您应该不需要覆盖用户设置。只需选择正确的条件:
要定位网站首页,请使用is_front_page()
要确保网站首页显示的是静态页面,请使用\'page\' == get_option( \'show_on_front\' )
.
- 如果首页设置为显示静态页面,则用户将创建并分配一个要使用的静态页面。要确定该页面的ID,请使用
get_option( \'page_on_front\' )
.将脚本添加到custom.js
文件位于主题目录的某个位置添加连接到的回调wp_enqueue_scripts()
:add_action( \'wp_enqueue_scripts\', \'wpse58196_enqueue_custom_script\' );`
在回调中,根据正确的条件将自定义脚本排队:function wpse58196_enqueue_custom_script() {
// If we\'re on the site front page, and the front page displays a static page
if ( is_front_page() && \'page\' == get_option( \'show_on_front\' ) ) {
// Enqueue custom script, with jQuery as a dependency, and output in the footer
wp_enqueue_script(
// handle
\'custom-carousel\',
// path
get_template_directory() . \'/custom.js\',
// dependency array
array( \'jquery\' ),
// version
\'1.0\',
// in footer?
true
);
}
}