is_page 값을 넘기려면..? – 한국워드프레스사용자모임 https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/feed Mon, 23 Dec 2024 00:47:59 +0000 https://bbpress.org/?v=2.6.9 ko-KR https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-935 <![CDATA[is_page 값을 넘기려면..?]]> https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-935 Fri, 10 Mar 2006 18:56:20 +0000 생각해보니 위에 제가 답변드린 내용으로는 원하시는 결과를 보실 수 없네요. 죄송합니다.

적용하시려는 조건들이 고정적이지 않고 유동적이기때문에 그렇습니다.
이미 정해진 옵션값이나 설정값을 불러오는건 가능하지만, 이 경우는 css가 페이지에 로딩되기 이전에 이미 ‘test’라는 값이 입력된 상태로 넘어오게 되는거죠.

원하는 결과를 얻으려면 header.php파일에 직접 입력하는 방법밖에 없겠네요.

<?php if (is_page('contact')) $current = 'contact';
else $current = 'test'; ?>
<style type="text/css">

스타일값들...
}
</style>

]]>
https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-936 <![CDATA[Reply To: is_page 값을 넘기려면..?]]> https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-936 Fri, 10 Mar 2006 18:56:20 +0000 <?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() 라고 에러가 납니다.

이 부분을 해결하려면 어떻게 해야 할까요;;

]]>
https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-940 <![CDATA[Reply To: is_page 값을 넘기려면..?]]> https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-940 Fri, 10 Mar 2006 18:56:20 +0000 <?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() 라고 에러가 납니다.

이 부분을 해결하려면 어떻게 해야 할까요;;

]]>
https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-937 <![CDATA[Reply To: is_page 값을 넘기려면..?]]> https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-937 Fri, 10 Mar 2006 21:08:18 +0000 082net 우선 질문 하신 내용에 대한 답변입니다.

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; /* 헌재 페이지의 스타일 */
}

Avatar of 082net
Facebook 사용자 모임 그룹 도 함께 운영되고 있으며, 격 주로 미트업과 스터디를 진행하고 있으니 관심 있으신 분들의 많은 참여 바랍니다 🙂
]]>
https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-941 <![CDATA[Reply To: is_page 값을 넘기려면..?]]> https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-941 Fri, 10 Mar 2006 21:08:18 +0000 082net 우선 질문 하신 내용에 대한 답변입니다.

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; /* 헌재 페이지의 스타일 */
}

Avatar of 082net
Facebook 사용자 모임 그룹 도 함께 운영되고 있으며, 격 주로 미트업과 스터디를 진행하고 있으니 관심 있으신 분들의 많은 참여 바랍니다 🙂
]]>
https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-938 <![CDATA[Reply To: is_page 값을 넘기려면..?]]> https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-938 Sat, 11 Mar 2006 01:13:39 +0000 <?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는 다르게 적용이 됩니다.

작성한 페이지의 값을 전달받을 방법은 없을까요..?

]]>
https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-942 <![CDATA[Reply To: is_page 값을 넘기려면..?]]> https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-942 Sat, 11 Mar 2006 01:13:39 +0000 <?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는 다르게 적용이 됩니다.

작성한 페이지의 값을 전달받을 방법은 없을까요..?

]]>
https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-939 <![CDATA[Reply To: is_page 값을 넘기려면..?]]> https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-939 Sat, 11 Mar 2006 01:22:12 +0000 <?php
if ( is_page('contact') ) {
   $current1 = 'contact';
} else {
   $current1 = 'conspiracy';
}
?>

이 경우 contact 페이지로 넘어갔을 경우 3개 값을 출력해야 하는데
single나 index, archive는 else값이 출력이 되나 contact페이지에서는 값이 출력되지 않습니다.

]]>
https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-943 <![CDATA[Reply To: is_page 값을 넘기려면..?]]> https://kopress.kr/topic/is_page-%ea%b0%92%ec%9d%84-%eb%84%98%ea%b8%b0%eb%a0%a4%eb%a9%b4/#post-943 Sat, 11 Mar 2006 01:22:12 +0000 <?php
if ( is_page('contact') ) {
   $current1 = 'contact';
} else {
   $current1 = 'conspiracy';
}
?>

이 경우 contact 페이지로 넘어갔을 경우 3개 값을 출력해야 하는데
single나 index, archive는 else값이 출력이 되나 contact페이지에서는 값이 출력되지 않습니다.

]]>