예를 들어, 워드프레스의 첫 페이지에 표시할 헤더를 완전히 다른 레이아웃으로 표시하고 싶은 경우가 있을 수 있습니다. 이런 경우 첫 페이지에 사용할 헤더만을 별도로 만들어 연결하는 것이 가능합니다. 이를 위해서는 헤더를 불러오는 함수를 이해할 필요가 있습니다.
<?php get_header(); ?>
index.php, page.php 파일의 맨 위에 보면 보통 위와 같은 코드가 있을 것입니다. get_header() 함수는 다음과 같은 형태로 사용됩니다.
<?php get_header( $name ); ?>
가령 get_header()는 header.php 파일을 호출하고, get_header(‘home’)은 header-home.php 파일을 호출합니다.
그러므로 다음과 같이 get_header() 부분을 바꾸어주면:
<?php if ( is_front_page() || is_home() ) : // 전면 페이지 또는 블로그 페이지인 경우 get_header( 'home' ); elseif ( is_404() ) : // 404 페이지인 경우 get_header( '404' ); else : get_header(); endif; ?>
전면 페이지나 홈일 경우 header-home.php 파일을 호출하고, 404 오류가 발생할 경우 header-404.php, 그 외에는 header.php 파일을 호출합니다. 만약 개별 페이지별로 지정하고 싶은 경우
if( is_page('about')) : get_header('about');
위와 같은 형태로 추가할 수 있습니다. 이 경우 슬러그가 ‘about’인 페이지의 헤더로 ‘header-about.php’를 호출하게 됩니다.
푸터와 사이드바에도 동일한 규칙이 적용됩니다. 예를 들어,
<?php if ( is_front_page() || is_home() ) : // 전면 페이지, 블로그 페이지 get_footer( 'home' ); elseif ( is_404() ) : get_footer( '404' ); else : get_footer(); endif; ?>
<?php get_footer(); ?> 부분에 위와 같은 코드를 사용하면 블로그 페이지(첫 페이지)와 전면 페이지에서는 footer-home.php 파일이 푸터로 호출되고, 404 페이지의 경우 footer-404.php, 이외에는 footer.php가 호출됩니다.
또, 사이드바의 경우
<?php if ( is_home() ) : // 블로그 페이지인 경우 get_sidebar( 'home' ); else : get_sidebar(); endif; ?>
위와 같은 코드를 <?php get_sidebar(); ?> 부분을 대신하여 사용하면 블로그 페이지일 경우 sidebar-home.php 파일이 사이드바로 호출되고 이외에는 sidebar.php 파일이 호출됩니다.
도움이 많이 되었습니다
페이지가 아닌 카테고리내에서 헤더를 변경을 하고싶을땐 어떻게 하나요?
안녕하세요?
블로그를 방문해주셔서 감사합니다.
카테고리의 경우 http://www.thewordcracker.com/basic/how-to-use-a-different-header-or-footer-in-wordpress/ 글을 참고해보시기 바랍니다. 링크된 글의 맨 아래에 보면 “is_page()뿐만 아니라 is_category()도 함께 사용이 가능합니다”라고 설명되어 있습니다. 방식은 동일하고 조건 부분에 카테고리를 넣어주시면 됩니다. 일반적으로 category.php 파일의 get_header() 부분을 수정해주시면 됩니다.
감사드려요~~