页面之间的帖子数量不同。选项
Different amount of posts between pages. Options
我有一个博客,我需要第一个 post 成为特色 post,因此我需要给 post 一个特殊的样式。
没问题,我用下面的代码实现了它。
但是:
问题是,在第一个 post 下方,您会发现其余的位于两行,每行 4 post。
所以基本上我必须通过管理界面告诉 wordpress 每页 9 post:特色 post + 两个 4 posts 行 = 9。
一切都很好,直到你转到第二页,那里没有特色 post,你得到 3 行,2x4 和 1 笨拙的第 3 1 post 行(当然,我要求 9 p/p).
我读过很多 post 关于这个的答案对我来说不够清楚。
问题:是否可以用 wp_query 获得第一个 post,然后用 1 post 的偏移量获得其余的正常循环?
如果没有,还有其他简单的方法吗?
检查一下 here
<?php get_header(); ?>
<div class="container blog">
<div class="main-column clearfix">
<?php if (paginate_links()) : ?>
<div class="paginate">
<?php echo paginate_links();?>
</div>
<?php endif;?>
<?php
$primera = true;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if (have_posts()) :
while(have_posts()) : the_post();
if($primera == true && $paged == 1) { // IF first post AND first page
get_template_part('portada');
}
else {
get_template_part('blog');
}
$primera = false;
endwhile;
else : echo 'No content';
endif;
?>
</div>
<div class="paginate">
<?php echo paginate_links();?>
</div>
<?php get_footer(); ?>
我建议您限制从代码中查询的帖子数量,而不是从管理面板中查询。所以当你检查它的第一页时,你查询 9 posts ,但如果它的其他页面你只查询 8 posts 。一些示例代码是(尚未测试)
<?php
$primera = true;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if($paged == 1){
query_posts( 'posts_per_page=9' );
}else{
query_posts( 'posts_per_page=8' );
}
if (have_posts()) :
while(have_posts()) : the_post();
if($primera == true && $paged == 1) { // IF first post AND first page
get_template_part('portada');
}
else {
get_template_part('blog');
}
$primera = false;
endwhile;
else : echo 'No content';
endif;
?>
的循环之前查找更多查询帖子示例
这是我必须做的才能使用 query_posts 的 paginate_links() 函数:
if($paged == 1){
global $wp_query;
query_posts(
array_merge(
array(
'posts_per_page' => 9
),
$wp_query->query
)
);
} else {
global $wp_query;
query_posts(
array_merge(
array(
'posts_per_page' => 8
),
$wp_query->query
)
);
}
我有一个博客,我需要第一个 post 成为特色 post,因此我需要给 post 一个特殊的样式。
没问题,我用下面的代码实现了它。
但是:
问题是,在第一个 post 下方,您会发现其余的位于两行,每行 4 post。
所以基本上我必须通过管理界面告诉 wordpress 每页 9 post:特色 post + 两个 4 posts 行 = 9。
一切都很好,直到你转到第二页,那里没有特色 post,你得到 3 行,2x4 和 1 笨拙的第 3 1 post 行(当然,我要求 9 p/p).
我读过很多 post 关于这个的答案对我来说不够清楚。
问题:是否可以用 wp_query 获得第一个 post,然后用 1 post 的偏移量获得其余的正常循环?
如果没有,还有其他简单的方法吗?
检查一下 here
<?php get_header(); ?>
<div class="container blog">
<div class="main-column clearfix">
<?php if (paginate_links()) : ?>
<div class="paginate">
<?php echo paginate_links();?>
</div>
<?php endif;?>
<?php
$primera = true;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if (have_posts()) :
while(have_posts()) : the_post();
if($primera == true && $paged == 1) { // IF first post AND first page
get_template_part('portada');
}
else {
get_template_part('blog');
}
$primera = false;
endwhile;
else : echo 'No content';
endif;
?>
</div>
<div class="paginate">
<?php echo paginate_links();?>
</div>
<?php get_footer(); ?>
我建议您限制从代码中查询的帖子数量,而不是从管理面板中查询。所以当你检查它的第一页时,你查询 9 posts ,但如果它的其他页面你只查询 8 posts 。一些示例代码是(尚未测试)
<?php
$primera = true;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if($paged == 1){
query_posts( 'posts_per_page=9' );
}else{
query_posts( 'posts_per_page=8' );
}
if (have_posts()) :
while(have_posts()) : the_post();
if($primera == true && $paged == 1) { // IF first post AND first page
get_template_part('portada');
}
else {
get_template_part('blog');
}
$primera = false;
endwhile;
else : echo 'No content';
endif;
?>
的循环之前查找更多查询帖子示例
这是我必须做的才能使用 query_posts 的 paginate_links() 函数:
if($paged == 1){
global $wp_query;
query_posts(
array_merge(
array(
'posts_per_page' => 9
),
$wp_query->query
)
);
} else {
global $wp_query;
query_posts(
array_merge(
array(
'posts_per_page' => 8
),
$wp_query->query
)
);
}