У меня есть этот код, который я хочу реализовать на своем веб-сайте. Я успешно создал дочернюю тему. Этот код должен менять фон каждый день недели. Я не слишком хорошо знаком с WordPress, и мне интересно, куда я должен поместить его и как. Может кто-нибудь, пожалуйста, дайте мне пошаговую инструкцию, что мне нужно сделать?
Код ниже. Большое спасибо.
function chgDailyImg() { var imagearray = new Array(); imagearray[0] = "sundaypic.jpg"; imagearray[1] = "mondaypic.jpg"; imagearray[2] = "tuesdaypic.jpg"; imagearray[3] = "wednesdaypic.jpg"; imagearray[4] = "thursdaypic.jpg"; imagearray[5] = "fridaypic.jpg"; imagearray[6] = "saturdaypic.jpg"; var d = new Date(); /*** create a date object for use ***/ var i = d.getDay(); /*** use the date object to get the day of the week - this will be a number from 0 to 6 - sunday=0, saturday=6 -it's the way counting works in javascript it starts at 0 like in the arrays ***/ document.getElementById("dailyImg").src = imagearray; }/* CSS Document *//* CSS Document */
В этом случае тег, который вы хотите вызвать для выполнения вашей функции, – это wp_head()
.
Глядя на код, который вы предоставляете, у вас есть идея, но я решил переписать ее по-другому. В файле functions.php
вашей дочерней темы добавьте следующее:
add_action( 'wp_head', 'wpse_238911_weekly_background' ); function wpse_238911_weekly_background() { $day = date( "l" ); switch( $day ) { case 'Monday': $background_image = 'mon-img.jpg'; break; case 'Tuesday': $background_image = 'tue-img.jpg'; break; case 'Wednesday': $background_image = 'wed-img.jpg'; break; case 'Thursday': $background_image = 'thu-img.jpg'; break; case 'Friday': $background_image = 'fri-img.jpg'; break; case 'Saturday': $background_image = 'sat-img.jpg'; break; case 'Sunday': default: $background_image = 'sun-img.jpg'; break; } ?> <style type="text/css"> body { background-image: url( 'http://web.site/img/<?php echo $background_image; ?>' ); } </style> <?php }
Просто отключите mon-img.jpg
до ваших фактических имен изображений и измените путь http://web.site/img/
к тому месту, где у вас будут храниться ваши дневные изображения.
Код, который вы опубликовали, – это JavaScript, и он должен быть помещен в файл JavaScript внутри вашей дочерней темы, например:
/your-child-theme/js/background-changer.js
Затем ваша дочерняя тема должна помещать ваш JS-файл из его файла functions.php
, например:
function wpse238911_load_js() { wp_enqueue_script( 'wpse238911_load_js', get_stylesheet_directory_uri() . '/js/background-changer.js', array(), false, false ); } add_action( 'wp_enqueue_scripts', 'wpse238911_load_js' );
Это действительно единственная часть вашей проблемы в WordPress.
Похоже, что с вашим JS могут возникнуть некоторые проблемы. Вы присваиваете весь imagearray
src
элемента #dailyImg
. Похоже, вы должны использовать imagearray[i]
. Также chgDailyImg()
никогда не выполняется. Вот, возможно, полезная фиксированная версия:
function chgDailyImg() { var imagearray = new Array(); imagearray[0] = "sundaypic.jpg"; imagearray[1] = "mondaypic.jpg"; imagearray[2] = "tuesdaypic.jpg"; imagearray[3] = "wednesdaypic.jpg"; imagearray[4] = "thursdaypic.jpg"; imagearray[5] = "fridaypic.jpg"; imagearray[6] = "saturdaypic.jpg"; var d = new Date(); /*** create a date object for use ***/ var i = d.getDay(); /*** use the date object to get the day of the week - this will be a number from 0 to 6 - sunday=0, saturday=6 -it's the way counting works in javascript it starts at 0 like in the arrays ***/ document.getElementById("dailyImg").src = imagearray[i]; } chgDailyImg();
На данный момент мы говорим о ванильном JavaScript, и это не в тему для этого сайта. Возможно, вам больше повезет в Stack Overflow для вопросов JavaScript.