2016-03-08 2 views
2

У меня есть цикл while, который получает все страницы определенной категории на index.php, которая является моей страницей сообщений.Нест цикл while в выражении if else в WordPress

Однако, я хочу, чтобы изменить код, приведенный ниже, так что если это домашнюю, он не работает этот цикл, но отображает некоторые текстовые.

Этот код цикл работ:

<?php 
$category = get_category(get_query_var('cat')); 
$cat_id = $category->cat_ID; 

$loop = new WP_Query(array( 
    'post_type' => 'story', 
    'cat' => $cat_id, 
    'posts_per_page' => 10, 
    'orderby' => 'date', 
    'order' => 'DESC' 
)); 

while ($loop->have_posts()) : $loop->the_post(); 
?> <a href="<?php echo the_permalink(); ?>"><?php the_title();?></a> 
endwhile; 
?> 

В этом коде ничего не нагрузки на любой странице, кроме главной страницы:

<?php 
    $category = get_category(get_query_var('cat')); 
    $cat_id = $category->cat_ID; 

    $loop = array(
     'post_type' => 'story', 
     'cat' => $cat_id, 
     'posts_per_page' => 10, 
     'orderby' => 'date', 
     'order' => 'DESC' , 
    'paged'=>$paged 
    ); 
     if (is_home()) {  


     echo 'Welcome!'; 


    } else if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?> 

       <h2><a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a></h2>    

    <?php endwhile; endif; ?> 
+0

if (! Homepage) {//} else {текст, который вы хотите?} – izk

+0

Я пытался это сделать, но когда я это делаю, он работает только на главной странице, а не на реальных страницах. См. Другой код, который я пробовал. – And

+0

где вы инициализируете $ the_query ???? – WisdmLabs

ответ

1

Вам нужно обернуть запрос и цикл в вашем is_home() состоянии

if (!is_home()) { // This is not the home page 
    // Add your query and loop here 
    $category = get_category(get_query_var('cat')); 
    $cat_id = $category->cat_ID; 

    $loop = new WP_Query(array( 
     'post_type' => 'story', 
     'cat' => $cat_id, 
     'posts_per_page' => 10, 
     'orderby' => 'date', 
     'order' => 'DESC' 
    )); 

    while ($loop->have_posts()) : $loop->the_post(); 
    ?> <a href="<?php echo the_permalink(); ?>"><?php the_title();?></a> 
    endwhile; 

} else { // This is the homepage 
    echo 'Some text here'; 
} 
+0

Этот код работал, спасибо! – And

+0

Мое удовольствие, рад, что это помогло. Наслаждаться;-) –

0
<?php 
    $category = get_category(get_query_var('cat')); 
    $cat_id = $category->cat_ID; 

    $loop = new WP_Query(array( 
    'post_type' => 'story', 
    'cat' => $cat_id, 
    'posts_per_page' => 10, 
    'orderby' => 'date', 
    'order' => 'DESC' 
)); 
if ($loop->have_posts()) : while ($loop->have_posts()) : $the_query->the_post(); 
    if (is_home()) {  
     echo 'Welcome!'; 
    } 
    else{?> 
       <h2><a href="<?php echo get_permalink(); ?>"><?php the_title();    
    } 

    <?php endwhile; endif; ?> 
+0

Привет, WisdmLabs, и спасибо за ваш ответ. К сожалению, это не сработало. Ничего не отображается ни на главной странице, ни на внутренней странице. – And

Смежные вопросы