2015-10-04 1 views
2

Я разрабатываю тему wordpress, и я устанавливаю cookie на основе определенных условий. Он отлично работает - я могу установить файл cookie и получить файл cookie. Моя проблема заключается в добавлении класса в документ-элемент на основе значения файла cookie, например. <html class="special-class">, если значение cookie равно true и <html class="regular-class">, если значение false.Добавить класс в document.documentElement с php

Как это сделать в Wordpress? Код, который я хочу, будет выглядеть так:

function my_theme_getcookie() { 
    if (isset($_COOKIE['cookie-name']) && $_COOKIE['cookie-name'] == 'true' ) { 
    // Add the class "special-snowflake" to <html> tag... 
    } 
} 
add_action('wp_head', 'my_theme_getcookie'); 

Мой Обойти теперь добавить свой особый класс <body>, а не <html> используя что-то на основе следующего из WordPress Codex

function my_theme_class_names($classes) { 
    // add 'class-name' to the $classes array 
    $classes[] = 'class-name'; 
    // return the $classes array 
    return $classes; 
} 

Тогда я можно назвать эту функцию, когда я проверяю для печенья:

function my_theme_getcookie() { 
    if (isset($_COOKIE['cookie-name']) && $_COOKIE['cookie-name'] == 'true' ) { 
    add_filter('body_class', 'my_theme_class_names'); 
    } 
} 

похоже, нет html_class() аналоговый фильтр body_class()

ответ

0

Можете ли вы попробовать это.

<?php 
    function my_theme_getcookie(){ 
      if(isset($_COOKIE['cookie-name']) && $_COOKIE['cookie-name'] == 'true'){?> 
       <script> 
        var root = document.getElementsByTagName('html')[0]; // '0' to assign the first (and only `HTML` tag) 

        root.setAttribute('class', 'special-snowflake'); 
       </script><?php 
      } 
     } ?> 
+0

Я уверен, что это сработает, но я не хотел этого. Я бы предпочел не использовать JavaScript в этом случае - я надеялся использовать компилятор Wordpress, например, который можно сделать с помощью add_filter для body body, что позволяет добавлять классы в . Кажется, что эквивалент для тега . –

+0

Поиск, если бы вы могли это выяснить. Я никогда не делал этого с тегом ''. –