2016-03-08 126 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