1

使用最新的 Wordpress 版本(3.6),我正在尝试申请:

<body onLoad="window.scroll(0, 150)">

到我网站上的特定登录页面,以便页面滚动到页面加载的特定点。

鉴于 Wordpress 的设置方式 - header.php 中包含正文标记 - 我如何才能在我的特定页面的正文标记中回显上述代码,而不将其应用于我的其余页面?

我假设这里需要有一些东西:

<body <?php body_class(); ?><?php my code in here?>>
4

3 回答 3

3

您不需要将代码应用于<body>标签,请参阅:https ://stackoverflow.com/a/191318/1287812

这可以通过functions.php以下代码完成,并使用 SrikanthAD 提到的条件标签:

add_action( 'wp_footer', 'b5f_on_load_script' );

function b5f_on_load_script()
{
    // Not our page, do nothing
    if( !is_page( 'about' ) )
        return;

    ?>
    <script type="text/javascript">
        window.onload = function() { alert( 'Inside specific page' ); };        
    </script>
    <?php           
};

另请参阅:如何使用 window.scroll 在页面加载时自动滚动?

于 2013-08-09T14:18:01.647 回答
3

出于某种原因,我在使用上述方法时遇到了困难,但是逻辑是正确的。

我现在已经单独注册了滚动脚本,并使用以下方法根据页面模板将其排入队列:

wp_register_script( 'scroll', get_template_directory_uri() . '/js/scroll.js' );
if( is_page_template('my-landing-page.php') ) wp_enqueue_script( 'scroll' );

与:window.onload=function(){window.scroll(0, 140)};作为一个单独的文件。

感谢所有的帮助。

于 2013-08-10T16:37:03.593 回答
1

您可以使用 WordPress 中提供的许多条件标签来获得所需的功能。

http://codex.wordpress.org/Conditional_Tags

例子:

 if ( is_page( 'about' ) ) { 
// do something
 } 

我同意 brasofilo,您不一定要在模板中包含条件标签。它可以在任何地方使用,具体取决于您的项目。

于 2013-08-09T14:13:32.873 回答