检查是否为home.php,并将home.php设置为page_on_front

时间:2012-07-11 作者:Jashwant

我只想在主页上包含一个自定义内联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覆盖阅读部分选项,有什么解决方法吗?

3 个回复
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\' ) )
  1. 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\' ).

  2. 如果首页设置为显示静态页面,则用户将创建并分配一个要使用的静态页面。要确定该页面的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
            );
        }
    }
    

SO网友:Rezen

您的问题更可能与wp_script_is().

试试这个

function aa_home_scripts() {
    if(is_home()){
        wp_enqueue_script(
            \'app-home\',
            get_template_directory_uri() . \'/js/app.home.js\',
            array(\'jquery\'), // declare jQuery as dependancy
           \'1\',
           true // flag to add to footer
       );
    }
}
add_action(\'wp_enqueue_scripts\', \'aa_home_scripts\');

SO网友:Chris_O

What you need is:

if ( is_front_page() || is_page_template( \'home.php\' ) {     
     //javscript stuff...

}
结束

相关推荐

Functions.php:从博客中排除类别

所以很明显,如何从模板中排除某些类别,但我不想修改4个模板,使它们忽略某个类别。有没有一种方法可以将某个类别从阅读设置的“博客”集中排除?我正在将博客分配到名为“博客”的页面。。。但显然,档案和搜索也需要对这一超出类别的内容视而不见。我宁愿在里面做functions.php