-
익명손님@2006/03/11 3:56 오전 #935
생각해보니 위에 제가 답변드린 내용으로는 원하시는 결과를 보실 수 없네요. 죄송합니다.
적용하시려는 조건들이 고정적이지 않고 유동적이기때문에 그렇습니다.
이미 정해진 옵션값이나 설정값을 불러오는건 가능하지만, 이 경우는 css가 페이지에 로딩되기 이전에 이미 ‘test’라는 값이 입력된 상태로 넘어오게 되는거죠.원하는 결과를 얻으려면 header.php파일에 직접 입력하는 방법밖에 없겠네요.
<?php if (is_page('contact')) $current = 'contact';
else $current = 'test'; ?>
<style type="text/css">스타일값들...
}
</style>익명손님@2006/03/11 3:56 오전 #936<?php
if ( is_page('contact') ) { $current = 'contact'; }
elseif ( is_page('works') ) { $current = 'works'; }
elseif ( is_page('home') ) { $current = 'home'; }
else { $current = 'test'; }
?>background-position: 0 -32px;
}이런식으로 header.php 나 single.php 페이지에는 삽입하면 브라우저 소스보기에서 $current값이 출력 됨을 확인할 수 있습니다.
하지만 이값들을 php에 넣어, 값을 전달받고자 합니다. (header는 css로 입력)
http://1.com/wp/wp-content/theme/1/1.css.php 라고 저장후 불러올 경우
결과는
Fatal error: Call to undefined function: is_page() in 절대경로/1.css.php
즉 다른 페이지에 <?php get_header(); ?> 를 입력하여 출력시키면
Fatal error: Call to undefined function: get_header() 라고 에러가 납니다.이 부분을 해결하려면 어떻게 해야 할까요;;
익명손님@2006/03/11 3:56 오전 #940<?php
if ( is_page('contact') ) { $current = 'contact'; }
elseif ( is_page('works') ) { $current = 'works'; }
elseif ( is_page('home') ) { $current = 'home'; }
else { $current = 'test'; }
?>background-position: 0 -32px;
}이런식으로 header.php 나 single.php 페이지에는 삽입하면 브라우저 소스보기에서 $current값이 출력 됨을 확인할 수 있습니다.
하지만 이값들을 php에 넣어, 값을 전달받고자 합니다. (header는 css로 입력)
http://1.com/wp/wp-content/theme/1/1.css.php 라고 저장후 불러올 경우
결과는
Fatal error: Call to undefined function: is_page() in 절대경로/1.css.php
즉 다른 페이지에 <?php get_header(); ?> 를 입력하여 출력시키면
Fatal error: Call to undefined function: get_header() 라고 에러가 납니다.이 부분을 해결하려면 어떻게 해야 할까요;;
2006/03/11 6:08 오전 #937우선 질문 하신 내용에 대한 답변입니다.
css파일에서 워드프레스의 인식자를 쓰려면 wp-config.php파일을 include하셔야 합니다.
(css파일이 ‘/wp-content/themes/1/1.css.php’에 위치한다고 가정하겠습니다.)파일의 맨 위에 아래 코드를 넣어 주세요.
<?php
/*
The headers below tell the browser to cache the file and also tell the browser it is css.
*/
header("Cache-Control: must-revalidate");
$offset = 60*60*24*60;
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s",time() + $offset)." GMT";
header($ExpStr);
header('Content-Type: text/css');
include("../../../wp-config.php");
?>주석처리된 설명을 보시면 왜 위의 코드가 필요한지를 아실 수 있습니다.
추가
질문하신 내용으로 미루어보아.. 페이지마다 메뉴의 css스타일을 다르게 하려고 하시는듯 한데.. 맞나요?그렇다면 위 과정을 거치는것 보다는 페이지 리스트를 wp_list_pages() 를 이용해서 나열하는 방법이 더 효과적일듯 합니다.
(참고페이지: http://codex.wordpress.org/Template_Tags/wp_list_pages)
이 방법을 이용하면 현재의 페이지의 class가 ‘current_page_item’이 되고 나머지 페이지 메뉴들의 class는 ‘page_item’이 됩니다.
.current_page_item { } 의 스타일만 다르게 지정해 주시면 되네요. 아래는 k2테마에서 상단부분에 페이지메뉴를 나열한 방법입니다. 한번 살펴보세요.<ul class="menu">
<li class="<?php if (((is_home()) && !(is_paged())) or (is_archive()) or (is_single()) or (is_paged()) or (is_search())) { ?>current_page_item<?php } else { ?>page_item<?php } ?>"><a href="<?php echo get_settings('home'); ?>" title="Blog Home">Blog</a></li>
<?php wp_list_pages('sort_column=menu_order&depth=1&title_li='); ?>
</ul>질문하신 내용에 있는 css스타일은 아래처럼 됩니다.
ul.menu li.page_item {
/* 기본적인 메뉴 스타일 */
}ul.menu li.current_page_item {
background-position: 0 -32px; /* 헌재 페이지의 스타일 */
}2006/03/11 6:08 오전 #941우선 질문 하신 내용에 대한 답변입니다.
css파일에서 워드프레스의 인식자를 쓰려면 wp-config.php파일을 include하셔야 합니다.
(css파일이 ‘/wp-content/themes/1/1.css.php’에 위치한다고 가정하겠습니다.)파일의 맨 위에 아래 코드를 넣어 주세요.
<?php
/*
The headers below tell the browser to cache the file and also tell the browser it is css.
*/
header("Cache-Control: must-revalidate");
$offset = 60*60*24*60;
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s",time() + $offset)." GMT";
header($ExpStr);
header('Content-Type: text/css');
include("../../../wp-config.php");
?>주석처리된 설명을 보시면 왜 위의 코드가 필요한지를 아실 수 있습니다.
추가
질문하신 내용으로 미루어보아.. 페이지마다 메뉴의 css스타일을 다르게 하려고 하시는듯 한데.. 맞나요?그렇다면 위 과정을 거치는것 보다는 페이지 리스트를 wp_list_pages() 를 이용해서 나열하는 방법이 더 효과적일듯 합니다.
(참고페이지: http://codex.wordpress.org/Template_Tags/wp_list_pages)
이 방법을 이용하면 현재의 페이지의 class가 ‘current_page_item’이 되고 나머지 페이지 메뉴들의 class는 ‘page_item’이 됩니다.
.current_page_item { } 의 스타일만 다르게 지정해 주시면 되네요. 아래는 k2테마에서 상단부분에 페이지메뉴를 나열한 방법입니다. 한번 살펴보세요.<ul class="menu">
<li class="<?php if (((is_home()) && !(is_paged())) or (is_archive()) or (is_single()) or (is_paged()) or (is_search())) { ?>current_page_item<?php } else { ?>page_item<?php } ?>"><a href="<?php echo get_settings('home'); ?>" title="Blog Home">Blog</a></li>
<?php wp_list_pages('sort_column=menu_order&depth=1&title_li='); ?>
</ul>질문하신 내용에 있는 css스타일은 아래처럼 됩니다.
ul.menu li.page_item {
/* 기본적인 메뉴 스타일 */
}ul.menu li.current_page_item {
background-position: 0 -32px; /* 헌재 페이지의 스타일 */
}익명손님@2006/03/11 10:13 오전 #938<?php
if ( is_page('contact') ) { $current = 'contact'; }
elseif ( is_page('works') ) { $current = 'works'; }
elseif ( is_page('home') ) { $current = 'home'; }
else { $current = 'test'; }
?>background-position: 0 -32px;
}우선, 답변감사합니다. 많은 도움됐습니다 (__
<?php
/*
The headers below tell the browser to cache the file and also tell the browser it is css.
*/
header("Cache-Control: must-revalidate");
$offset = 60*60*24*60;
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s",time() + $offset)." GMT";
header($ExpStr);
header('Content-Type: text/css');
include("../../../wp-config.php");
?>이부분을 입력하니 값을 제대로 받아오는 것 같습니다.
다마, 작성한 페이지의 경우에는 예를들어 contact라는 페이지의 경우if ( is_page('contact') ) { $current = 'contact'; }
이렇게 기재되어 있음에도 불구하고..
else { $current = ‘test’; } 이 항목의 값만 출력이 됩니다.다른소스코드로는 index.php나 single.php는 다르게 적용이 됩니다.
작성한 페이지의 값을 전달받을 방법은 없을까요..?
익명손님@2006/03/11 10:13 오전 #942<?php
if ( is_page('contact') ) { $current = 'contact'; }
elseif ( is_page('works') ) { $current = 'works'; }
elseif ( is_page('home') ) { $current = 'home'; }
else { $current = 'test'; }
?>background-position: 0 -32px;
}우선, 답변감사합니다. 많은 도움됐습니다 (__
<?php
/*
The headers below tell the browser to cache the file and also tell the browser it is css.
*/
header("Cache-Control: must-revalidate");
$offset = 60*60*24*60;
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s",time() + $offset)." GMT";
header($ExpStr);
header('Content-Type: text/css');
include("../../../wp-config.php");
?>이부분을 입력하니 값을 제대로 받아오는 것 같습니다.
다마, 작성한 페이지의 경우에는 예를들어 contact라는 페이지의 경우if ( is_page('contact') ) { $current = 'contact'; }
이렇게 기재되어 있음에도 불구하고..
else { $current = ‘test’; } 이 항목의 값만 출력이 됩니다.다른소스코드로는 index.php나 single.php는 다르게 적용이 됩니다.
작성한 페이지의 값을 전달받을 방법은 없을까요..?
익명손님@2006/03/11 10:22 오전 #939<?php
if ( is_page('contact') ) {
$current1 = 'contact';
} else {
$current1 = 'conspiracy';
}
?>이 경우 contact 페이지로 넘어갔을 경우 3개 값을 출력해야 하는데
single나 index, archive는 else값이 출력이 되나 contact페이지에서는 값이 출력되지 않습니다.익명손님@2006/03/11 10:22 오전 #943<?php
if ( is_page('contact') ) {
$current1 = 'contact';
} else {
$current1 = 'conspiracy';
}
?>이 경우 contact 페이지로 넘어갔을 경우 3개 값을 출력해야 하는데
single나 index, archive는 else값이 출력이 되나 contact페이지에서는 값이 출력되지 않습니다. -
AuthorPosts
- 답변은 로그인 후 가능합니다.