트위터 부트 스트랩 탐색이 겹치는 WordPress 관리 막대에 대한 답변
질문 : @TheWebs
WordPress에서 Twitter Bootstrap 을 사용 하고 있고 WordPress 관리 막대가 탐색 막대와 겹치는 문제가있는 경우 이러한 답변 중 일부에 상당히 실망 할 것입니다. 나는 궁극적으로 더 낮은 기어로 다운 시프 팅하기로 결정하고 내가해야 할 일을 정확하게 수행하는 솔루션을 결정하기 전에 모든 곳에서 솔루션을 찾았습니다.
여기에 WordPress 관리 막대를 숨기거나 WordPress 관리 막대를 페이지 맨 아래로 이동하지 않는 답변이 있습니다. 이 답변은 WordPress 관리 표시 줄이 속한 곳을 그대로 유지합니다 ... 페이지 상단에.
이 작업을 완료하는 데 몇 가지 간단한 단계가 필요하지만 그만한 가치가 있습니다. 실제로 복잡하거나 시간이 많이 걸리는 프로세스는 아닙니다. 나는 그렇게하는 방법에 대한 설명이 명확하고 따르기 쉽고 이해하기 쉽도록하고 싶었습니다.
1 단계
테마에는 body 태그에 대한 템플릿 태그가있어 테마 작성자가 CSS로보다 효과적으로 스타일을 지정할 수 있습니다. 템플릿 태그는이라고
body_class
합니다. 이 함수는 body 요소에 다른 클래스를 제공하며 일반적으로 header.php
의 HTML body 태그 에 추가 할 수 있습니다 .
- Twitter Bootstrap 디렉토리를 사용하여 현재 활성화 된 WordPress 테마를 엽니 다 . 찾아서
header.php
엽니 다.
- 찾기
<body>
.
- 로 교체
<?php echo '<body class="'.join(' ', get_body_class()).'">'.PHP_EOL; ?>
위의 세 단계를 완료 한 후에는 WordPress 본문 클래스를 사용하여 WordPress 테마를 활성화했습니다.
2 단계 (선택 사항)
<body>
태그에 사용자 정의 조건부 CSS 클래스를 추가하십시오 .
body_class()
또는 get_body_class()
기능을 사용하는 경우 기본적으로 WordPress는 이미 기본 클래스 목록을 HTML 태그에 제공 합니다.
WordPress 웹 사이트에서 렌더링 된 프런트 엔드 페이지의 소스 코드를 보면 HTML <body>
태그에 자동으로 추가 된 두 개의 CSS 클래스 가 "로그인"및 "관리자 막대"인 것을 알 수 있습니다.
또한 <body>
사용자가 로그인 한 경우 해당 CSS 클래스 이름이 HTML 태그 에만 추가되고 그렇지 않으면 HTML <body>
태그에 추가되지 않습니다 .
따라서 기본 WordPress CSS 클래스 이름을 사용하지 않으려는 경우 고유 한 이름을 쉽게 추가 할 수 있습니다.
- Twitter Bootstrap 디렉토리를 사용하여 현재 활성화 된 WordPress 테마를 엽니 다 . 찾아서
functions.php
엽니 다.
-
add_filter('body_class', 'mbe_body_class');
파일 맨 위에 추가 하십시오.
- 파일 맨 아래에 다음 코드를 추가 하십시오.
코드:
function mbe_body_class($classes){
if(is_user_logged_in()){
$classes[] = 'body-logged-in';
} else{
$classes[] = 'body-logged-out';
}
return $classes;
}
이제 WordPress 웹 사이트에서 렌더링 된 프런트 엔드 페이지의 소스 코드를 볼 경우 사용자가 로그인 한 경우 "body-logged-in"이 HTML <body>
태그 에 추가되었고 사용자가 로그 아웃하면 "body-logged-out"이 HTML <body>
태그에 추가 된 것을 볼 수 있습니다.
3 단계
이것은 사용자가 웹 사이트에 로그인했는지 또는 로그 아웃했는지에 관계없이 테마를 수정하여 WordPress 관리 막대와 Twitter Bootstrap 탐색을 모두 표시하도록하는 코드 섹션입니다.
- Twitter Bootstrap 디렉토리를 사용하여 현재 활성화 된 WordPress 테마를 엽니 다 . 찾아서
functions.php
엽니 다.
-
add_action('wp_head', 'mbe_wp_head');
파일 맨 위에 추가 하십시오.
- 파일 맨 아래에 다음 코드를 추가 하십시오.
코드:
function mbe_wp_head(){
echo '<style>'.PHP_EOL;
echo 'body{ padding-top: 70px !important; }'.PHP_EOL;
// Using custom CSS class name.
echo 'body.body-logged-in .navbar-fixed-top{ top: 28px !important; }'.PHP_EOL;
// Using WordPress default CSS class name.
echo 'body.logged-in .navbar-fixed-top{ top: 28px !important; }'.PHP_EOL;
echo '</style>'.PHP_EOL;
}
코드 편집
add_action('wp_head', 'mbe_wp_head');
function mbe_wp_head(){
echo '<style>'
.PHP_EOL
.'body{ padding-top: 70px !important; }'
.PHP_EOL
.'body.body-logged-in .navbar-fixed-top{ top: 46px !important; }'
.PHP_EOL
.'body.logged-in .navbar-fixed-top{ top: 46px !important; }'
.PHP_EOL
.'@media only screen and (min-width: 783px) {'
.PHP_EOL
.'body{ padding-top: 70px !important; }'
.PHP_EOL
.'body.body-logged-in .navbar-fixed-top{ top: 28px !important; }'
.PHP_EOL
.'body.logged-in .navbar-fixed-top{ top: 28px !important; }'
.PHP_EOL
.'}</style>'
.PHP_EOL;
}
이 버전의 mbe_wp_head 함수에는 모바일 우선 미디어 쿼리가 포함되어있어 헤더가 적절한 거리를 누를 수 있도록합니다. 모바일의 경우 WP 관리 막대의 크기는 48 픽셀입니다. 783px 중단 점 이후에 관리자 막대는 키가 28px로 줄어 듭니다.
거기 있어요 사용자가 로그인 한 경우 이제 페이지 맨 위에 WordPress 관리 표시 줄이 있고 Twitter 부트 스트랩 탐색 바로 다음에 표시됩니다. 사용자가 WordPress 웹 사이트에서 로그 아웃 한 경우 웹 사이트 상단에 Twitter Bootstrap 탐색이 여전히 적절하게 표시되어야합니다.