我要将我的引导模板转换为自定义Wordpress主题,但有一个小问题。
我想显示我所有的博客帖子。到目前为止,它运行良好。但问题是:由于我的设计偏好,我想在特定帖子之后更改所显示帖子的使用样式。比如说,对于前三篇文章,我想使用样式A(文章显示在一个带有标题和摘录的大框中),第三篇之后,我想显示以下带有样式B的文章(每行两篇,较小的框,只有图像和标题,没有摘录)。
我刚刚开始使用WP语法,所以我不知道如何实现这一点。有什么建议吗?
谢谢
EDIT
这是我当前使用的代码
<?php
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args = array(
\'post-type\' => \'post\',
\'post-per-page\' => 8,
\'paged\' => $paged,
);
$wp_query = new WP_Query($args);
if ($wp_query->have_posts()) : while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<article class="single-post">
<div class="post-thumbnail">
<a href="<?php the_permalink(); ?>">
<img src="<?php echo get_template_directory_uri(); ?>/images/example.jpg">
</a>
</div>
<div class="post-content">
<div class="content-header">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
</div>
<div class="content-text">
<?php the_excerpt(); ?>
</div>
<div class="read-more">
<a href="<?php the_permalink(); ?>">Read More</a>
</div>
</div>
</article>
<?php endwhile; else: ?>
<p>Sorry, no posts yet.</p>
<?php endif; ?>
这将产生一个我当前帖子的列表,风格都是一样的。正如我所说,我真的想在第三篇文章之后改变风格。在我当前的引导代码中,如下所示:
<article class="single-post">
// all the stuff above
</article>
<div class="row"> <!-- a new row for smaller post boxes -->
<div class="col-sm-6"> <!-- first box -->
<article class="multiple-post">
// all the stuff here
</article>
</div>
<div class="col-sm-6"> <!-- second box -->
<article class="multiple-post">
// all the stuff here
</article>
</div>
</div>
因此,我希望在前3篇左右的博客文章中使用带有类single post的文章,之后,页面应该使用带有类multiple post的文章,包括额外的div行。否则,由于引导程序的工作方式,我无法使用确切的布局。
希望这能让你更清楚。
SO网友:Krzysiek Dróżdż
好的,下面是更改后的代码:
<?php
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args = array(
\'post_type\' => \'post\',
\'posts_per_page\' => 8,
\'paged\' => $paged,
);
$wp_query = new WP_Query( $args );
if ( $wp_query->have_posts() ) :
?>
<?php if ( 1 == $paged ) : // <- remove this if, if the layout should be the same for all pages ?>
<?php while ( $wp_query->have_posts() && $wp_query->current_post < 3 ) : $wp_query->the_post(); // print first 3 posts ?>
<article class="single-post">
<div class="post-thumbnail">
<a href="<?php the_permalink(); ?>">
<img src="<?php echo get_template_directory_uri(); ?>/images/example.jpg">
</a>
</div>
<div class="post-content">
<div class="content-header">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
</div>
<div class="content-text">
<?php the_excerpt(); ?>
</div>
<div class="read-more">
<a href="<?php the_permalink(); ?>">Read More</a>
</div>
</div>
</article>
<?php endwhile; ?>
<?php endif; // <- remove this endif, if the layout should be the same for all pages ?>
<?php if ( $wp_query->have_posts() ) : // if there were more than 3 posts found ?>
<div class="row"> <!-- a new row for smaller post boxes -->
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); // display smaller posts ?>
<div class="col-sm-6"> <!-- first box -->
<article class="multiple-post">
// all the stuff here
</article>
</div>
<?php endwhile; ?>
</div><!-- .row -->
<?php endif; ?>
<?php else : // if no posts found ?>
<p>Sorry, no posts yet.</p>
<?php endif; ?>
如果你使用这个代码,那么前3篇文章只会在第一页上更大。如果要在所有页面上显示相同的布局,则必须删除
if
声明-我已经在评论中标记了它。
顺便说一句,使用$wp_query
用于自定义查询的变量不是最好的主意。。。