Используя последнюю версию WordPress (3.6), я пытаюсь применить:
<body onLoad="window.scroll(0, 150)">
На конкретную целевую страницу на моем сайте, чтобы страница прокручивалась до определенной точки при загрузке страницы.
С учетом того, как WordPress настроен – с тегами body, включенными в header.php – как я могу повторить вышеуказанный код в теге body только для моей конкретной страницы, не применяя его к остальной части моих страниц?
Я предполагаю, что что-то нужно здесь:
<body <?php body_class(); ?><?php my code in here?>>
Вам не нужно применять код к тегу <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 для автоматической прокрутки по pageload?
По какой-то причине у меня были трудности с использованием вышеуказанного подхода, однако логика была правильной.
Теперь я вместо этого зарегистрировал скрипт прокрутки отдельно и ввел его в очередь на основе шаблона страницы, используя:
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)};
как отдельный файл.
Спасибо за помощь.
Вы можете использовать многие условные теги, доступные в WordPress, чтобы получить желаемую функциональность.
http://codex.wordpress.org/Conditional_Tags
Пример:
if ( is_page( 'about' ) ) { // do something }
Я согласен с brasofilo, вы не обязательно включаете условный тег в свой шаблон. Он может использоваться везде, в зависимости от вашего проекта.