2016-10-15 4 views
-2

if 문이 여러 개 사용하는 데 문제가 있습니다. &&을 사용하고 있지만 첫 번째 문장에서만 작동하는 것으로 보입니다. 코드는 같다 :여러 if 문의 문 발행

global $post; 
$args = array('post_id' => $post->ID); 
$comment = get_comments($args); 
$user = wp_get_current_user(); 
if (3 <= count($comment) && $post->post_author == $user->ID) { 
    echo do_shortcode('[button]'); 
} else { 
    comment_form(); 
} 

그것은 기본적으로 존재하는 경우보다 3 개의 댓글이 후 주석 폼을 표시한다는 통계하지만이 3 개 이상을하고있는 경우 게시물 작성자는 다음 버튼을 보여줍니다. 버튼은 3 개 이상의 댓글이있는 경우에만 표시됩니다. 내가 원하는대로 게시물 작성자인지 여부는 확인하지 않습니다.

+2

global $post,$current_user; $args = array('post_id' => $post->ID); $comment = get_comments($args); get_currentuserinfo(); if ($post->post_author == $current_user->ID) { echo do_shortcode('[button]'); } elseif (3 <= count($comment)) { // blank } else { comment_form(); }
는'당신이'수 ($ 코멘트)을 인쇄하는 것을 시도했다'$ 포스트> post_author'과'$ 사용자 -> ID' 그 값은 당신이 필요로하는 값이 있는지 확인하는 방법 ? – CristianHG

답변

0

설명하는 것은 단추가 표시되어야하는 두 가지 경우입니다. 따라서 if 블록에 들어가는 방법은 두 가지가 있어야합니다. 당신은 논리 또는 연산자로 if 문을 리팩터링해야합니다. 예를 들어

는 :

if($post->post_author == $user->ID || 3 <= count($comment)) { 
    echo do_shortcode('[button]'); 
} else { 
    comment_form(); 
} 
+0

예, 값을 테스트 해 보았습니다. 올바른 값입니다. – David

+0

죄송합니다. 완료되기 전에 보냈습니다. 값은 올바른 것들이며 && 대신 ll을 사용해 보았지만 아무 변화가 없습니다. 나는 또한 별개의 조건을 만들려고 노력했지만, 그렇게 할 때 코멘트 양식은 이미 3을받은 상태라면 여전히 표시됩니다. – David

+0

comment_form()은 user-> ID가 post_author가 아니거나 count ($ comment)가 3보다 큰 경우에 실행됩니다. 원하는 것이 아니라면 comment_form()을 실행할 때 또는하지 않을 때 다시 말해주십시오. OP는 약간 오해의 소지가 있다고 생각합니다. –

0

나는 일하러과 같이 코드를 변경했다.