В последнем воплощении моего сайта у меня есть переключатель темного / светлого режима, который я встроил в мою новую тему WordPress. У меня нет проблем с созданием, чтением и изменением файлов cookie, но проблема в том, что в конечном итоге они применяются только к страницам, на которых я включаю переключатель, даже если я указал «/» при создании файлов cookie.

Вот мой PHP для первоначального создания файлов cookie:

if(!isset($_COOKIE["darkmode"])){ $cookie_name = "darkmode"; $cookie_value = "0"; setcookie($cookie_name, $cookie_value, time()   (86400 * 365), "/"); // 86400 = 1 day } if ($_COOKIE["darkmode"]) { $extraBodyClass = "d4rkm0d3"; } else { $extraBodyClass = ""; } 

А вот JS для обновления куки:

 function darkModeSwitch() { if (jQuery("body").hasClass("d4rkm0d3")) { jQuery("body").removeClass("d4rkm0d3"); document.cookie = "darkmode=0"; } else { jQuery("body").addClass("d4rkm0d3"); document.cookie = "darkmode=1"; } } 

Несколько дополнительных замечаний: я делаю это на моей машине разработчика на localhost (стек LAMP — последняя версия Ubuntu, Apache2, MySQL 8.0.18, PHP 7.4). WordPress — это 5.3.1 (на самом деле он не делает ничего, что могло бы взломать .2). Тема является доморощенной, с блансклатом в качестве ядра. Только плагины при настройке — это CPT-UI, Расширенные пользовательские поля, Yoast и WP Importer. Кэширование не настроено, и я тестирую последнюю версию Chrome с постоянно открытым инструментом инспектора и отключенным кешем при перезагрузке.