2013-10-18 2 views
0

무한 스크롤 페이지를 만들고 있습니다. 특정 카테고리의 게시물이로드되는 페이지 템플릿을 만들었습니다. 모든 것이 단일 페이지와 단일 카테고리로 잘 작동합니다.is_page()가 실행되지 않았습니다.

하지만이 페이지 템플릿에는 3 페이지가 있으며 각 페이지는 특정 카테고리의 기사를로드해야합니다. 어떤 페이지 방문자를 결정하기 위해 elseif 블록 인 경우 is_page()을 사용하고 있습니다. 그러나 is_page()은 실행되지 않습니다. 여기

는 루프 :

$cat = ''; 
if(is_page(703)){ 
    $cat = 4; 
} elseif (is_page(706)) { 
    $cat = 21; 
} 
    $args = array(
     'cat' => $cat, 
     'paged' => $paged 
     ); 
    $infinite_news_query = new WP_Query($args); 
    if ($infinite_news_query -> have_posts()) : while ($infinite_news_query -> have_posts()) : $infinite_news_query -> the_post(); 
<?php endwhile; ?> 

<?php else : ?> 
<?php endif; ?> 
<?php wp_reset_postdata(); 
?> 

가이 코드에 관계없이 카테고리의 모든 게시물을 표시하고 $cat 루프 내부 비어 있습니다.

내가 뭘 잘못하고 있니?

감사합니다. 이 같은 그것에

+0

$cat = ''; 제거 '할 수 없습니다 루프 내부에서 사용하십시오. 루프 동안 is_page() 루프를 덮어 쓰는 동안 특정 전역 변수가 작동하지 않기 때문에. The Loop 이후에 사용하려면 Loop 뒤에 wp_reset_query()를 호출해야합니다. ' – lexith

+0

루프가 시작되기 전에 is_page를 호출하고 있습니까? –

+0

@razhial'is_page()'가 루프 앞에 있습니다. 질의 인수에 사용되는'$ cat' 변수에 다른 값을 할당하기 만하면됩니다. –

답변

1

변경 다음

$cat = ''; 
if(is_page(703)){ 
    $cat = 4; 
} elseif (is_page(706)) { 
    $cat = 21; 
} 

에 :

if(is_page('703')){ 
    $cat = 4; 
} else { if(is_page('706')) { 
    $cat = 21; 
} 

는 또한 http://codex.wordpress.org/Function_Reference/is_page 에서 봐

+0

작동하지만 왜? ??? –

+0

나는 해결책을 찾을 수없는 이유 중 하나를 해결할 수 없습니다. 우리가 왜 잘못 됐어? 결국 현재 페이지가 id-ed 703 또는 706이면 빈 변수가 변경됩니다. 그렇습니까? –

+0

$ cat을 빈/false로 설정할 필요가 없습니다. 다른 elseif 대신에 elseif를 사용하고 else 내의 if 문이 차이를 발견했습니다. – danyo

0

봐, 먼저는 각각 빈 값에 변수 $cat 세트가에 허위, 그럼 당신은 기본을두고, 두 상태로 루프를 설정 제로 또는 0

값. 페이지 ID가 변경되면 어떻게 될까요?

모든 게시물이 표시됩니다.

즉, 코드에 아무 것도 표시되지 않습니다. 차라리 id보다 is_page('slug')을 사용하는 것이 좋습니다.

+0

결과가 동일합니다. 각 상태는'$ cat'에 다른 값을 할당하고 있습니다 ... 아니면 적어도해야합니다,하지만 그렇지 않습니다. –

관련 문제