2016-03-08 211 views
2

我有一個while循環獲取index.php這是我的帖子頁面上某個類別的所有頁面。在WordPress中的if else語句中嵌套一個while循環

不過,我想改變下面的代碼,所以如果它是主頁,它不運行這個循環,但顯示一些文本

此代碼迴路工程:

<?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 {text you want?} – 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