У меня есть следующий код javascript:
$(window).scroll(function() {
if ($(this).scrollTop() > 50) /*height in pixels when the navbar becomes non opaque*/
{
$('.navbar-default').addClass('sticky');
$('.navbar-brand img').attr('src','assets/images/logo.png'); //change src
} else {
$('.navbar-default').removeClass('sticky');
$('.navbar-brand img').attr('src','assets/images/logo__footer.png')
}
});
Можно ли вставить собственный PHP-код wp
<?php the_custom_logo(); ?>
Вместо этого статического атрибута
.attr('src','assets/images/logo.png');
Спасибо заранее.
@RiggsFolly Привет, это часть js файла
Тогда я думаю, что ответ - нет, не прямо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам нужно установить переменную в шаблоне:
<script>
var logoImage = <?php the_custom_logo(); ?>;
var logoImageFooter = <?php the_custom_logo()?> //here footer logo
</script>
а затем в вашем js файле используйте его
$(window).scroll(function() {
if ($(this).scrollTop() > 50) /*height in pixels when the navbar becomes non opaque*/
{
$('.navbar-default').addClass('sticky');
$('.navbar-brand img').attr('src',logoImage); //change src
} else {
$('.navbar-default').removeClass('sticky');
$('.navbar-brand img').attr('src',logoImageFooter)
}
});
Привет @ vasyl-zhuryk, большое спасибо. Не могли бы вы сообщить мне, в каком именно шаблоне мне нужно установить переменную?
@Jamdev Теперь у меня нет сервера Wordpress, и я не вижу файл. Но вы можете найти это сами. html в вашем модуле, который загружается вместе с вашим js файлом
Очень признателен!
Ваш Js-код:
$(window).scroll(function() {
if ($(this).scrollTop() > 50) /*height in pixels when the navbar becomes non opaque*/
{
$('.navbar-default').addClass('sticky');
$('.navbar-brand img').attr('src','custom_logo.png'); //change src
} else {
$('.navbar-default').removeClass('sticky');
$('.navbar-brand img').attr('src','logo_footer.png')
}
});
HTML код:
<?php $customLogo= 'custom_logo'; ?>
<?php $footerLogo= 'footer_logo'; ?>
<html>
<body>
<script type = "text/javascript">
// notice the quotes around the ?php tag
var customLogo = "<?php echo $customLogo; ?>";
var footerLogo = "<?php echo $footLogo; ?>";
alert(customLogo);
alert(footerLogo);
</script>
</body>
</html>
ЕСЛИ вам нужен jquery с вводом кода php, тогда функция wp_localize_script().
Больше информации
var logoImage = <?php the_custom_logo(); ?>;
var logoImageFooter = <?php the_custom_logo()?> //here footer logo
// Register the script
wp_register_script( 'some_handle', 'path/to/myscript.js' );
// Localize the script with new data
$translation_array = array(
'logo_image' => the_custom_logo(),
'logo_image_footer' => the_custom_logo()'
);
wp_localize_script( 'some_handle', 'object_name', $translation_array );
// Enqueued script with localized data.
wp_enqueue_script( 'some_handle' );
Вы можете получить доступ к переменным в JavaScript следующим образом:
<script>
alert( object_name.logo_image);
alert( object_name.logo_image_footer);
</script>
$('.navbar-brand img').attr('src',object_name.logo_image); //change src
Создан ли этот javascript как часть php-скрипта или он находится в файле
.js, на который вы ссылаетесь на страницу