programing

Wordpress에서 body_class()의 클래스를 확인하는 방법

yellowcard 2023. 3. 26. 10:02
반응형

Wordpress에서 body_class()의 클래스를 확인하는 방법

Wordpress header.php에는

<body <?php body_class($class); ?>>

특정 클래스가 존재하는지 확인하고 그 결과 마크업을 로드하려면 어떻게 해야 합니까?전남편에게.

<body class"home logged-in">

<?php if $class == 'home' ?>
    <div class="home"></div>
<? else : ?>
    <div class="internal-page"></div>
<? endif; ?>

감사합니다!

만약 정말로, 정말로, 다른 마크업을 사용할 필요가 있다면,body_class클래스, 그 후 사용

$classes = get_body_class();
if (in_array('home',$classes)) {
    // your markup
} else {
    // some other markup
}

그러나 @Rob이 제안하는 조건부 태그와 같은 더 나은 방법이 있을 수 있습니다.그 지도들은 그들이 사용하는 수업과 매우 밀접하게 관련되어 있다.body_class.

액세스 할 수 있습니다.body_class필터가 달린add_filter('body_class', function ...)하지만 잘못된 접근을 하고 계신 것 같습니다.필요한 용도로 css를 사용하면 어떨까요?예를들면,.home>div { /* home styles */ }

또는 다른 스타일시트를 로드할 수 있습니다.

add_filter('body_class', function($classes) {
    if (in_array('home', $classes)) {
        wp_enqueue_style('home');
    }
    return $classes;
});

다른 템플릿을 사용하여 페이지를 만들었을 때와 같은 문제가 있었습니다만, 커스텀 서브메뉴는 각 페이지에서 동일해야 합니다.

이거 먼저 해봤는데 실패했어

<body <?php body_class( 'extra-class' ); ?>>

추가 클래스가 본문 태그에 추가되었지만 오류 로그를 실행하면 클래스 배열에 없습니다.그래서 나중에 바디태그에 추가될 줄 알았어요.

이 솔루션은 나에게 효과가 있었다.

functions.php

$GLOBALS['extraBodyClass'] = '';

템플릿 파일

<?php $GLOBALS['extraBodyClass'] = 'extra-class' ?>- 템플릿 파일의 첫 번째 줄

<body <?php body_class( $GLOBALS['extraBodyClass'] ); ?>>- 템플릿 이름 선언 후

에서header.php파일

$classes = get_body_class();
if($GLOBALS['extraBodyClass']){
   $classes[] = $GLOBALS['extraBodyClass'];
}

언급URL : https://stackoverflow.com/questions/15033888/how-to-check-for-class-in-body-class-in-wordpress

반응형