在特定页面上加载脚本

时间:2011-02-01 作者:dorich

在子主题中,我创建了一个函数。加载脚本和样式文件的php文件,代码如下。将库和脚本加载到除admin之外的所有页面的部分,换句话说,前两个函数,按预期工作。但是,第三个函数(用于加载特定页面的脚本)不会加载。看来我的问题与指定页面条件有关。如果将register和enqueue的其余代码放在为除管理页面以外的任何页面加载脚本的常规函数中,那么它就可以工作。我对此进行了研究,但找不到任何例子来说明我所使用的方法不起作用的原因。我已将页面id与页面名称交换,但没有任何效果。

如果您能就问题的根源提出任何建议,我们将不胜感激。

谢谢

    <?php

function scripts () {
    if ( !is_admin() ) { 
        wp_enqueue_script(\'jquery\');
        wp_register_script(\'jqueryUI\', "path", array(\'jquery\')); //register custom UI library
        wp_enqueue_script(\'jqueryUI\');
        wp_register_script(\'popUp1\', ("path"), array(\'jquery\', \'jqueryUI\'));
        wp_enqueue_script(\'popUp1\');
        wp_register_script(\'popUpText\', \'path\', array(\'jquery\', \'jqueryUI\'));
        wp_enqueue_script(\'popUpText\');
    }
}

add_action(\'init\', \'scripts\');

//INSERT CSS    files into the header
function styles () {
    if ( !is_admin() ) {
        wp_register_style(\'jqueryUIcss\', "path");
        wp_enqueue_style(\'jqueryUIcss\');
        wp_register_style(\'valuecss\', "path");
        wp_enqueue_style(\'valuecss\');
    }
}   
    add_action(\'init\', \'styles\');

//Add scripts for pop ups on "how to estimate value" page
function pagePopUps1 () {
    if ( is_page(16)) { 
        wp_register_script(\'popUpVideo1\', "path", array(\'jquery\', \'jqueryUI\'));
        wp_enqueue_script(\'popUpVideo1\');

    }
}

add_action(\'init\', \'pagePopUps1\');  



//End of file
?>
注意:为了简洁起见,我删除了src,但这些已经过验证,不是问题的根源。

2 个回复
SO网友:t31os

我建议将注册的脚本移动到init操作中,并将队列移动到连接到的回调中wp_print_scripts.

例如:。

add_action( \'init\', \'register_those_scriptsNstyles\' );

function register_those_scriptsNstyles() {
    wp_register_script( .. your script params .. );
    wp_register_style( .. your style params ..  );

    ..etc..
}

add_action( \'wp_print_scripts\', \'enqueue_those_scriptsNstyles\' );

function enqueue_those_scriptsNstyles() {

    if( !is_page( \'some-page\' ) ) // If it\'s not the given page, stop here
        return;

    wp_enqueue_script( .. your script params .. );
    wp_enqueue_style( .. your style params .. );

    ..etc..
}
NOTE: 尽管有钩子的名字,我很确定wp_print_scripts 将样式排队也可以。重要的因素是确保您使用的钩子发生得足够晚,以便设置条件模板标记,即。is_page, is_category 等等
如果没有,请尝试wp_head 相反例如:。add_action( \'wp_head\', \'your-callback\' )

EDIT: 对于样式,就像管理端一样,面向公众的端对样式有一个操作。。这是wp_print_styles..(将样式挂入队列)。

希望这有帮助。。

SO网友:Rarst

在这种情况下首先要检查的是:

钩住功能发射正确添加var_dump( is_page(16) ); 查看这些功能是否按预期工作。

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c

在特定页面上加载脚本 - 小码农CODE - 行之有效找到问题解决它

在特定页面上加载脚本

时间:2011-02-01 作者:dorich

在子主题中,我创建了一个函数。加载脚本和样式文件的php文件,代码如下。将库和脚本加载到除admin之外的所有页面的部分,换句话说,前两个函数,按预期工作。但是,第三个函数(用于加载特定页面的脚本)不会加载。看来我的问题与指定页面条件有关。如果将register和enqueue的其余代码放在为除管理页面以外的任何页面加载脚本的常规函数中,那么它就可以工作。我对此进行了研究,但找不到任何例子来说明我所使用的方法不起作用的原因。我已将页面id与页面名称交换,但没有任何效果。

如果您能就问题的根源提出任何建议,我们将不胜感激。

谢谢

    <?php

function scripts () {
    if ( !is_admin() ) { 
        wp_enqueue_script(\'jquery\');
        wp_register_script(\'jqueryUI\', "path", array(\'jquery\')); //register custom UI library
        wp_enqueue_script(\'jqueryUI\');
        wp_register_script(\'popUp1\', ("path"), array(\'jquery\', \'jqueryUI\'));
        wp_enqueue_script(\'popUp1\');
        wp_register_script(\'popUpText\', \'path\', array(\'jquery\', \'jqueryUI\'));
        wp_enqueue_script(\'popUpText\');
    }
}

add_action(\'init\', \'scripts\');

//INSERT CSS    files into the header
function styles () {
    if ( !is_admin() ) {
        wp_register_style(\'jqueryUIcss\', "path");
        wp_enqueue_style(\'jqueryUIcss\');
        wp_register_style(\'valuecss\', "path");
        wp_enqueue_style(\'valuecss\');
    }
}   
    add_action(\'init\', \'styles\');

//Add scripts for pop ups on "how to estimate value" page
function pagePopUps1 () {
    if ( is_page(16)) { 
        wp_register_script(\'popUpVideo1\', "path", array(\'jquery\', \'jqueryUI\'));
        wp_enqueue_script(\'popUpVideo1\');

    }
}

add_action(\'init\', \'pagePopUps1\');  



//End of file
?>
注意:为了简洁起见,我删除了src,但这些已经过验证,不是问题的根源。

2 个回复
SO网友:t31os

我建议将注册的脚本移动到init操作中,并将队列移动到连接到的回调中wp_print_scripts.

例如:。

add_action( \'init\', \'register_those_scriptsNstyles\' );

function register_those_scriptsNstyles() {
    wp_register_script( .. your script params .. );
    wp_register_style( .. your style params ..  );

    ..etc..
}

add_action( \'wp_print_scripts\', \'enqueue_those_scriptsNstyles\' );

function enqueue_those_scriptsNstyles() {

    if( !is_page( \'some-page\' ) ) // If it\'s not the given page, stop here
        return;

    wp_enqueue_script( .. your script params .. );
    wp_enqueue_style( .. your style params .. );

    ..etc..
}
NOTE: 尽管有钩子的名字,我很确定wp_print_scripts 将样式排队也可以。重要的因素是确保您使用的钩子发生得足够晚,以便设置条件模板标记,即。is_page, is_category 等等
如果没有,请尝试wp_head 相反例如:。add_action( \'wp_head\', \'your-callback\' )

EDIT: 对于样式,就像管理端一样,面向公众的端对样式有一个操作。。这是wp_print_styles..(将样式挂入队列)。

希望这有帮助。。

SO网友:Rarst

在这种情况下首先要检查的是:

钩住功能发射正确添加var_dump( is_page(16) ); 查看这些功能是否按预期工作。

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c