Удалить Wordpress Body Classes - PullRequest
       0

Удалить Wordpress Body Classes

5 голосов
/ 18 октября 2011

Как я могу удалить классы из элемента body в Wordpress?

По умолчанию: body class = "page page-id-7 page-template-default-login-in" "


Что я ищу: body class = "page-id-7"

На почте: body class = "postid-40"

Ответы [ 2 ]

9 голосов
/ 18 октября 2011

Вот как вы можете найти что-то вроде этого:

  1. Найдите соответствующую функцию, просмотрев файл темы, в данном случае header.php

  2. Найдите эту функцию в Кодексе Wordpress (http://codex.wordpress.org/Function_Reference/body_class)

  3. Есть ли примеры, похожие на то, что я хочу сделать? Да:

    // Добавитьопределенный класс CSS с помощью фильтра add_filter ('body_class', 'my_class_names'); функция my_class_names ($ classes) {// добавление 'class-name' в массив $ classes $ classes [] = 'class-name'; // returnмассив $ classes возвращает $ classes;}

Таким образом, чтобы удалить все классы, просто добавьте это в functions.php:

add_filter('body_class','my_class_names');
function my_class_names($classes) {
    return array();
}

t 4. НоЯ хочу сохранить идентификатор страницы и идентификатор записи - как я могу это сделать? Поскольку вы не знаете, по какому индексу в массиве вы можете найти эту информацию, а поиск по массиву хромает, вам необходимо сначала очиститьмассив, как мы делали выше, а затем добавить материал, который вы действительно хотите. Как вы получаете нужную информацию,то есть идентификатор страницы и идентификатор записи?Это пятый шаг.

(5) В нижней части страницы кодекса вы найдете ссылку на исходный код.Вот ссылка, которую вы найдете: http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/post-template.php Если вы посмотрите на функцию, вы увидите, что она использует функцию, которая просто заполняет тот же массив, которым мы можем манипулировать с помощью вышеупомянутого фильтра.Посмотрев, как они это делают, вы тоже можете это сделать.

add_filter('body_class','my_class_names');
function my_class_names($classes) {
    global $wp_query;

    $arr = array();

    if(is_page()) {
    $page_id = $wp_query->get_queried_object_id();
    $arr[] = 'page-id-' . $page_id;
    }

    if(is_single()) {
    $post_id = $wp_query->get_queried_object_id();
    $arr[] = 'postid-' . $post_id;
    }

    return $arr;
}

Надеюсь, этот код работает.Если это не так, попробуйте выяснить, что не так, следуя инструкциям выше.Я надеюсь, что я помог хоть немного:)

0 голосов
/ 05 февраля 2019

рабочий код для удаления и добавления класса

//remove body class

add_filter('body_class', function (array $classes) {
    if (in_array('class_name', $classes)) {
      unset( $classes[array_search('class_name', $classes)] );
    }
  return $classes;
});

// Add specific CSS class by body.
 add_filter( 'body_class', function( $classes ) {
    return array_merge( $classes, array( 'class-name' ) );
} );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...