我在使用自定义主题的WordPress博客中出现分页问题。
这是我实际用于显示主页中所有帖子的循环(如你所见, 我只需要显示插入”
主页”
类别中的帖子):
<
!-- Articles -->
<
div role="main">
<
h2 class="page-title">
MOST RECENT<
/h2>
<
hr class="black">
<
?php $args = array(
'post_type' =>
'post', 'post_status' =>
'publish', 'category_name' =>
'home', 'order' =>
'DESC', 'posts_per_page' =>
100, 'paged' =>
get_query_var( 'paged' ), 'offset' =>
1, );
?>
<
?php $arr_posts = new WP_Query( $args );
?>
<
?php if ( $arr_posts->
have_posts() ) : ?>
<
div id="full-post-list" class="row between-xs">
<
?php while ( $arr_posts->
have_posts() ) : $arr_posts->
the_post();
?>
<
div class="col-xs-12 col-md-5 mansory-card">
<
div class="box">
<
div class="row middle-xs">
<
div class="col-xs-12 col-md-12">
<
div class="box">
<
a href="http://www.srcmini.com/<
?php the_permalink() ?>">
<
?php the_post_thumbnail('large', array('class' =>
'home-thumb-img'));
?>
<
/a>
<
/div>
<
/div>
<
/div>
<
div class="row middle-xs thumb-home">
<
div class="col-xs-12 col-md-12">
<
div class="box mansory-text-box">
<
span class="mansory-title">
<
a href="http://www.srcmini.com/<
?php the_permalink() ?>">
<
?php echo wp_trim_words( get_the_title(), 5, null );
?>
<
/a>
<
/span>
<
!-- Funzione PHP per generare numero random di views (mt_rand(1000, 2000)) più visite effettive. Da disattivare dopo un mese dal deployment-->
<
p class="mansory-details">
<
!-- POSTED BY <
a class="author-name" href="http://www.srcmini.com/<
?php /* echo get_author_posts_url( get_the_author_meta('ID' ), get_the_author_meta( 'user_nicename' ) );
?>
">
<
?php the_author();
*/?>
<
/a>
| -->
<
span class="mansory-category">
<
?php the_category(', ');
?>
<
/span>
|
<
?php echo get_the_date('F j, Y');
?>
<
!-- | <
?php /* echo (mt_rand(1000, 2000)) + wpp_get_views(get_the_ID());
*/ ?>
<
i class="far fa-eye">
<
/i>
-->
<
/p>
<
p class="mansory-excerpt">
<
span class="preview-excerpt">
<
?php echo get_the_excerpt() ?>
<
/span>
<
span class="read-more">
<
a href="http://www.srcmini.com/<
?php the_permalink() ?>">
Read more<
/a>
<
/span>
<
/p>
<
hr class="gray">
<
/div>
<
/div>
<
/div>
<
/div>
<
/div>
<
?php endwhile;
?>
<
/div>
<
?php endif;
?>
<
/div>
<
!-- #Articles -->
该循环在首页上显示前100个帖子, 但是如果我在浏览器中输入mysite.com/page/2, 则在首页上会看到相同的帖子。
我已经在网上阅读了几篇有关分页问题的文章, 但找不到解决方案。
有任何想法吗?
谢谢!
#1如果删除偏移量不起作用, 请尝试以下操作:
希望这能解决你的问题。
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$posts_per_page = 100;
$offset = ( $paged - 1 ) * $posts_per_page;
$args = array(
'post_type'=>
'post', 'post_status' =>
'publish', 'category_name' =>
'home', 'order' =>
'DESC', 'posts_per_page' =>
$posts_per_page, 'paged' =>
$paged, 'offset' =>
$offset);
#2你可以添加自定义分页
第1步-将函数添加到functions.php文件
if (!function_exists('wpex_pagination' )) {function wpex_pagination() {$prev_arrow = is_rtl() ? '→' : '←';
$next_arrow = is_rtl() ? '←' : '→';
global $wp_query;
$total = $wp_query->
max_num_pages;
$big = 999999999;
// need an unlikely integer
if( $total >
1 ){
if( !$current_page = get_query_var('paged') )
$current_page = 1;
if( get_option('permalink_structure') ) {
$format = 'page/%#%/';
} else {
$format = '&
paged=%#%';
}
echo paginate_links(array(
'base'=>
str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format'=>
$format, 'current'=>
max( 1, get_query_var('paged') ), 'total'=>
$total, 'mid_size'=>
3, 'type'=>
'list', 'prev_text'=>
$prev_arrow, 'next_text'=>
$next_arrow, ) );
}
}
}//Step-2 Add CSSul.page-numbers {
list-style: none;
margin: 0;
}.page-numbers:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}ul.page-numbers li {
display: block;
float: left;
margin: 0 4px 4px 0;
text-align: center;
}.page-numbers a, .page-numbers span {
line-height: 1.6em;
display: block;
padding: 0 6px;
height: 18px;
line-height: 18px;
font-size: 12px;
text-decoration: none;
font-weight: 400;
cursor: pointer;
border: 1px solid #ddd;
color: #888;
}.page-numbers a span { padding: 0 }.page-numbers a:hover, .page-numbers.current, .page-numbers.current:hover {
color: #000;
background: #f7f7f7;
text-decoration: none;
}.page-numbers:hover { text-decoration: none }
//步骤3将分页添加到模板文件
<
?php wpex_pagination();
?>
#3offset参数有一些已知问题。根据官方文件,
偏移量(int)–要置换或越过的职位数。警告:设置偏移量参数会覆盖/忽略分页的参数并中断分页。使用” posts_per_page” => -1(显示所有帖子)时, 将忽略” offset” 参数。【具有自定义主题的WordPress分页不起作用】以下是Wordpress提出的解决方法。 https://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination
推荐阅读
- WordPress-自定义模板上的分页未显示(Lollum Framework-Lotusflower主题)
- WordPress分页不起作用与第1页相同的第2页
- WordPress分页没有显示在类别页面上
- WordPress(页面模板条件检查在functions.php中不起作用)
- WordPress页面未显示CSS
- WordPress的页面生成器不显示
- WordPress页面本身正在滚动并开始动摇
- WordPress页面内容和同一页面中的帖子
- WordPress-覆盖短代码