2011-02-23 2 views
1

저는 PHP에 대해 상당히 익숙하며 실용적인 방법을 이해하려고합니다.이러한 PHP 함수는 WordPress의 특정 페이지에 어떻게 적용됩니까?

http://www.php.nethttp://codex.wordpress.org/Function_Reference/의 도움으로 다음 코드에서 대부분의 일이 발생합니다.

현재 쿠키가 설정되지 않은 경우 사이트의 한 페이지 만 팝업 양식을 트리거합니다. 이 코드 내에서 해당 기능이 지정 되었습니까?

여기에 기능을이다 :

if (isset($_POST['confirm']) && isset($_POST['location'])) { 
    setcookie("Location", $_POST['location'], time()+3600);  
} 
elseif (!isset($_COOKIE["Location"])) { 
    setcookie("Location", "", 1); 
} 
elseif (isset($_POST['deny'])) { 
    setcookie("Location", "", 1); 
} 

// Popup confirmation 
function show_popup($content) { 
    global $post; 
    $location = get_post_meta($post->ID, 'location', TRUE); 
    if (strtolower($l) == strtolower($location) || strlen($location) == 0 
    || (isset($_COOKIE["Location"]) && strtolower($_COOKIE["Location"]) 
    == strtolower($location))) { 
     return $content; 
    } else { 
     ?> 
     <div id="popup"> 
    <p>Foo.</p> 
    <p>Yes/No?</p> 
    <form action="<?php echo $PHP_SELF ?>" method="post"> 
    <input type="hidden" name="location" value="<?php echo $location; ?>" /> 
    <input type="submit" name="confirm" value="Yes" /> 
    <input type="submit" name="deny" value="No" /> 
    </form> 
    </div> 
     <?php 
    } 
} 
add_filter('the_content', 'show_popup'); 

// Adds content to the <head> tag 
function add_meta_content() { 
if(isset($_POST['deny'])) { 
?> 
<meta http-equiv="refresh" content="0;url=<?php bloginfo ('wpurl') ?>"> 
<?php 
} 
if(isset($_POST['confirm'])) { 
?> 
<meta http-equiv="refresh" content="0;url=<?php echo $PHP_SELF; ?>"> 
<?php 
} 

} 
add_action('wp_head', 'add_meta_content'); 
+0

당신은 같은 문장에서 "이해", "paractical"및 "wordpress"를 사용했습니다 ???? :-)'add_filter'와'add_action' 함수를위한 코드를 찾으십시오. 필터와 동작 및 시스템 아키텍처에서 이들이 사용되는 방법에 대해 읽어보십시오. – prodigitalson

+0

하하. 내가 WordPress를 사용하기 위해 적어도 * sh * t를 잡지 않으면 나는 코더 보드에 오신 것을 환영하지 않을 것이다. 감사. – dooley

답변

1

그것은 show_popup 함수에서 if 문입니다.

$ content (즉, 아무 것도하지 않음)를 반환하거나 양식을 출력합니다.

현재 게시물에 0 문자가 아닌 location이라는 메타 필드가 있고 해당 위치와 일치하는 쿠키가없는 경우 양식을 출력합니다.

+0

감사합니다, 피터, if 진술을 확인하십시오. 특히 다른 모든 페이지가 쿠키가없는 경우 사이트의 특정 라이브 페이지가 양식을 표시하는 방식에 특히 관심이 있습니다. 내 질문을 명확하게 업데이트하겠습니다. – dooley

관련 문제