Как добавить код сразу после открывающего тега body в Genesis framework
Нам нужно добавить два фрагмента кода: один сразу после открывающего тега body, а другой прямо перед закрывающим тегом body. Как это лучше сделать? Я изучил wp_enqueue_script, но похоже, что контент будет добавляться в секцию head.
Вы вообще открывали файл header.php и заглядывали в него? Увидите вызов genesis_before() сразу после открывающего тега <body> - следуйте за белым кроликом и получите:
function genesis_before() { do_action('genesis_before'); }
И аналогично для футера. Итак...
add_action( 'genesis_before', 'im_a_lazy_copy_paster' );
add_action( 'genesis_after', 'im_a_lazy_copy_paster' );
function im_a_lazy_copy_paster() {
if ( current_filter() == 'genesis_before' )
echo '<script>party.start();</script>';
else
echo '<script>if ( cops.called() ) party.split();</script>';
}
Вы можете использовать плагин, например этот, чтобы отобразить все хуки Genesis: http://wordpress.org/plugins/genesis-visual-hook-guide/. Это позволит вам быстро найти нужный хук для модификации.
Затем измените хук в файле функций.
Также вы можете использовать плагин, который позволяет легко модифицировать хуки через админку WordPress: http://www.studiopress.com/plugins/simple-hooks
Вы были на правильном пути. Функция wp_enqueue_script принимает параметр in_footer, который определяет, должен ли ваш скрипт загружаться перед содержимым страницы или в конце тела страницы.
$in_footer: (логический) (необязательный) Обычно скрипты размещаются в секции
<head>. Если этот параметр установлен вtrue, скрипт будет размещён внизу<body>. Для этого тема должна иметь хукwp_footer()в соответствующем месте. Обратите внимание, что вам нужно зарегистрировать скрипт до выполненияwp_head, даже если он будет размещён в подвале. По умолчанию:false
Вот ссылка на документацию в Codex: http://codex.wordpress.org/Function_Reference/wp_enqueue_script
После открывающего тега body.
add_action( 'genesis_before', 'my_genesis_script' ); function my_genesis_script() { if ( current_filter() == 'genesis_before' ) echo '<script>parties.over();</script>'; }
Структурные хуки действий
genesis_before: Этот хук выполняется сразу после открывающего тега в исходном коде документа.
- Перед закрывающим тегом body:
Вы можете добавить скрипт в Genesis > Настройки темы > Скрипты в шапке и подвале и ввести скрипт, который должен выводиться через wp_footer().
Хук wp_footer() выполняется непосредственно перед закрывающим тегом в исходном коде документа.
Обновление для GenesisWP 3.3.1
Перейдите в файл header.php
?>
</head>
<?php
genesis_markup(
[
'open' => '<body %s>',
'context' => 'body',
]
);
if ( function_exists( 'wp_body_open' ) ) {
wp_body_open();
}
echo '<script>parties.over();</script>';
/**
* Срабатывает сразу после хука `wp_body_open`.
*
* @since 1.0.0
*/
do_action( 'genesis_before' )