Nano Hash - криптовалюты, майнинг, программирование

Добавить собственное имя класса в тег тела Wordpress?

Я хотел бы поместить директиву в файл functions.php моей темы, который добавляет имя класса к тегу тела wordpress. Есть ли для этого встроенный метод API?

Например, мой код тега тела...

<body <?php if(function_exists("body_class") && !is_404()){body_class();} else echo 'class="page default"'?>>

И это приводит к тому, что в тег body записывается следующее (в зависимости от контекста, в котором представлена ​​страница (страница, сообщение, вход в систему и т. д.)

<body class="home blog logged-in"> 

В зависимости от дочерней темы, которую я использую в данный момент, я хочу, чтобы она была...

<body class="home blog logged-in mychildthemename"> 
17.03.2010

  • Я не уверен, что понял ваш вопрос - я только что заглянул в классическую тему, и тег <body> выводится непосредственно в файле header.php. Для чего именно вы ищете метод API для хранения и извлечения имен классов? 18.03.2010
  • Привет, pekka, я добавил свой тег тела к вопросу для лучшего разъяснения. Я просто хотел бы подключиться к этой функции body_class(), чтобы добавить к ней имя моей дочерней темы, чтобы я мог иметь условный css в моей основной теме, который применяется только тогда, когда активна конкретная дочерняя тема. 18.03.2010

Ответы:


1

Вы можете использовать фильтр body_class, например:

function my_plugin_body_class($classes) {
    $classes[] = 'foo';
    return $classes;
}

add_filter('body_class', 'my_plugin_body_class');

Хотя, очевидно, ваша тема должна вызывать соответствующую функцию body_class.

17.03.2010
  • Именно то, что я искал. Спасибо Ричард! 18.03.2010
  • Примечание: убедитесь, что тег body вашей темы, обычно в header.php, вызывает функцию body_class() <body <?php body_class(); ?>> 29.01.2014

  • 2

    Вы также можете использовать его непосредственно внутри функции WP body_class, которая добавит строку внутри класса body.

    eg.

    $class="custom-class";
    <body <?php body_class($class); ?>>
    

    http://codex.wordpress.org/Function_Reference/body_class

    16.08.2013
  • Должен быть ответ. Добавление классов через функцию немного излишне. 02.01.2021

  • 3

    Чтобы добавить в фильтр дополнительные классы, просто добавьте еще одну строку, которая добавляет еще одно значение в массив:

    add_filter('body_class','my_body_classes'); функция my_body_classes($classes) {

    $classes[] = 'class-name';
    $classes[] = 'class-name-two';
    
    return $classes;
    

    }

    01.04.2020

    4

    Если вы пытаетесь добавить классы в тег body, находясь в области администрирования, не забудьте вместо этого использовать хук admin_body_class. Обратите внимание, что это фильтр, который работает немного иначе, поскольку он пропускает строку классов, а не массив, поэтому ваш код будет выглядеть так:

    add_filter('admin_body_class', 'my_admin_body_class');
    function my_admin_body_class($classes) {
        return $classes . ' my_class';
    }
    
    08.12.2011
  • $classes - это массив, который не может добавлять к нему строку вот так 23.07.2020
  • @ShubhSheth Извините, вы ошибаетесь. Обратите внимание, что это относится к фильтру admin_body_class, который отличается от фильтра body_class: developer.wordpress.org /reference/hooks/admin_body_class 24.07.2020
  • Понял, но это все еще не то, что задает вопрос. Обновление класса должно выполняться через интерфейс, а не через администратора. 25.07.2020
  • В заголовке вопроса это не указано. Мне кажется, что если мы квалифицируем ответ как относящийся к административной области, это может кому-то помочь. 25.07.2020

  • 5

    Попробуй это..

        add_filter( 'body_class', 'custom_class' );
    function custom_class( $classes ) {
        if ( !is_front_page() ) {
            $classes[] = 'example';
        }
        return $classes;
    }
    
    22.01.2018

    6

    Если вы просто хотите добавить класс на основе шаблона вашей страницы, обратите внимание, что WP теперь автоматически добавляет класс для каждого шаблона в тег body.

    16.05.2019

    7

    Просто отредактируйте файл header.php вашей темы и измените там класс (вручную или в соответствии с некоторыми предустановленными логическими правилами).

    17.03.2010
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..