存档页面上的Wordpress if / else语句

时间:2014-11-19 17:41:00

标签: php wordpress if-statement

对于我正在研究的网站,我试图对令人兴奋的wordpress主题(revera)进行一些修改。原始代码在存档页面上显示帖子,仅包含缩略图图像和帖子标题。以下是原始代码:

<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
    <article class="col-sm-3 col-6 portbox post">
         <?php $thumb = get_post_thumbnail_id();    $img_url = wp_get_attachment_url( $thumb,'full' );     //get full URL to image (use "large" or "medium" if the images too big) $image = aq_resize( $img_url,     750, 500, true ); //resize & crop the image  ?>
         <?php if($image) : ?> <div class="hthumb">         <a href="<?php the_permalink(); ?>"><img     class="img-responsive" src="<?php echo $image ?>"/></a> </div> <?php endif; ?> <h3><a href="<?php     the_permalink(); ?>"> <?php the_title(); ?></a></h3> 
    </article>
<?php endwhile; ?>

现在我在archive.php中创建了一个if / else语句(如下所示),因此某些特定类别的存档页面显示的是除上述代码之外的其他代码。

现在,问题是归档文件不再正确显示原始代码(归档页面)。我所做的else if语句的代码如下(错误应该在“else”之后的部分中):

<?php
    if ( is_category( 'producten-diensten' )  ) {
        echo'
             the code for producten-diensten category ';

} else {
  //everything else

 while ($wp_query->have_posts()) :
     $wp_query->the_post();
     echo'<article class="col-sm-3 col-6 portbox post">';
     $thumb = get_post_thumbnail_id();
     $img_url = wp_get_attachment_url( $thumb,'full' ); //get full URL to image (use "large" or "medium" if the images too big)
     $image = aq_resize( $img_url, 750, 500, true ); //resize & crop the image
     if($image) : ;
        echo'<div class="hthumb"><a href="' . the_permalink() . '"><img class="img-responsive" src="' . $image . '"/></a></div>';
     endif;
     echo'<h3><a href="' . the_permalink() . '">' . the_title() . '</a></h3>';
     echo'</article>';
 endwhile;

}?>

页面(http://tinyurl.com/of2xslw)正确显示缩略图,但缩略图上方显示缩略图应链接的单个帖子的网址。缩略图链接到存档页面而不是单个帖子页面,帖子的标题(单个帖子的永久链接)不显示在缩略图下方。而不是那样,一个奇怪的网址出现了。该页面应如下所示

这里出了什么问题?我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:1)

这很简单:

你不应该回应the_permalink()和the_title(),因为它们已经回应了它们各自的结果:

<?php
    if ( is_category( 'producten-diensten' )  ) {
        echo'
             the code for producten-diensten category ';

} else {
  //everything else

 while ($wp_query->have_posts()) :
     $wp_query->the_post();
     echo'<article class="col-sm-3 col-6 portbox post">';
     $thumb = get_post_thumbnail_id();
     $img_url = wp_get_attachment_url( $thumb,'full' ); //get full URL to image (use "large" or "medium" if the images too big)
     $image = aq_resize( $img_url, 750, 500, true ); //resize & crop the image
     if($image) : ?>
        <div class="hthumb"><a href="<?php the_permalink(); ?>"><img class="img-responsive" src="<?php echo $image; ?>"/></a></div>';
     <?php endif;?>
          <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
     <?php echo'</article>';
 endwhile;

}?>

注意代码可能无效,因为我没有库aq_resize,因此我无法正确测试它。

答案 1 :(得分:0)

最终正确的代码是(感谢nunorbatista):

<?php
    if ( is_category( 'producten-diensten' )  ) {
        echo'
             the code for producten-diensten category ';

} else {
  //everything else

 while ($wp_query->have_posts()) :
     $wp_query->the_post();
     echo'<article class="col-sm-3 col-6 portbox post">';
     $thumb = get_post_thumbnail_id();
     $img_url = wp_get_attachment_url( $thumb,'full' ); //get full URL to image (use "large" or "medium" if the images too big)
     $image = aq_resize( $img_url, 750, 500, true ); //resize & crop the image
     if($image) : ?>
        <div class="hthumb"><a href="<?php the_permalink(); ?>"><img class="img-responsive" src="<?php echo $image; ?>"/></a></div>';
     <?php endif;?>
          <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
     <?php echo'</article>';
 endwhile;

}?>