PHP, смешанный с некоторым JS-кодом для обновления настроек темы WordPress

Я работаю над своей первой WordPress Theme, но у меня есть небольшая проблема в моем коде.

Фактически, я создал небольшую страницу в администрации, чтобы изменить некоторые настройки в моей теме и, например, изменить фоновые изображения темы, которые отображаются в плагине jQuery слайд-шоу под названием "Vegas" . Все работает хорошо, но я думаю, что я действительно не использую хороший метод для реализации моего кода.

В файле header.php я написал следующее:

  <?php if(get_theme_option("bg_slideshow") == 1): ?> /* Background Images */ var bg_slideshow = jQuery(".bg_slideshow").attr("data-active"); if(bg_slideshow == 1) { jQuery.vegas('slideshow', { delay: 8000, backgrounds:[ <?php echo get_bg_images_url(); ?> ] })('overlay'); } <?php endif; ?> 

Как вы можете видеть, у меня есть некоторый PHP и некоторый JS-код, смешанный здесь … Поэтому я получаю параметр темы с помощью функции PHP, и я обновил свой JS-код. Может ли кто-нибудь помочь мне улучшить мой код или кто-нибудь может сказать мне, как мне нужно работать (или отделять код), чтобы иметь что-то хорошее?

Solutions Collecting From Web of "PHP, смешанный с некоторым JS-кодом для обновления настроек темы WordPress"

Как я вижу, вы могли бы минимизировать смешивание кода, сохраняя возвращаемое значение get_theme_option("bg_slideshow") в переменной JS, хотя это не решило бы проблему в целом:

 var themeOptBgSlideshow = <?php echo get_theme_option("bg_slideshow"); ?>; if(themeOptBgSlideshow == 1){ /* Background Images */ var bg_slideshow = jQuery(".bg_slideshow").attr("data-active"); if(bg_slideshow == 1) { jQuery.vegas('slideshow', { delay: 8000, backgrounds:[ <?php echo get_bg_images_url(); ?> ] })('overlay'); } } 

Но, как сказано, это ограничение только минимизирует смешивание кода. Если вы действительно разделите свой код (который всегда является хорошей практикой), я думаю, что единственным вариантом является вызов AJAX. Таким образом, ваш JS может запросить страницу / функцию PHP, которая вернет значение get_theme_option("bg_slideshow") . Назначьте возвращаемое значение любой переменной, как было предложено в примере выше, и вы готовы к работе.

IMHO, я думаю, что призыв AJAX для этого является немного экстремальным решением. Но в любом случае вам решать, какое решение лучше всего подходит вам.