有人会碰巧知道为什么Wordpress Multisite的WP-PAGINATE插件会在页码和上一个/下一个箭头的链接中重复一个站点的主页吗?该页面是默认的帖子页面,不使用自定义帖子。与插件的所有分页链接都生成404.我已经尝试更新永久链接。
以下是它提供的网址示例: http://www.site.com/a_site_name/a_site_name/page/2
它应该是: http://www.site.com/a_site_name/page/2
感谢。
答案 0 :(得分:2)
我知道这篇文章有点老了......但是如果有帮助的话,那就太好了。我尝试使用WP Paginate插件,它没有为我做插孔,所以我选择了这个解决了我的一切。
<强> HTML / PHP:强>
<?php
//Fix homepage pagination
if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } else if ( get_query_var('page') ) {$paged = get_query_var('page'); } else {$paged = 1; }
$temp = $wp_query; // re-sets query
$wp_query = null; // re-sets query
$args = array( 'post_type' => array('assignment', 'student-post'), 'orderby' => 'date', 'order' => 'DESC','posts_per_page' => 15, 'paged' => $paged);
$wp_query = new WP_Query();
$wp_query->query( $args );
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
这允许几件事。一个它检查你的家,页或单,并告诉$ paged变量如何反过来。它还允许您使用自定义帖子类型查询您的分页。另外,通过不使用query_post,你可以避免在使用它时有时会得到一些非常时髦的东西。
在您的functions.php
中function paginate() {
global $wp_query, $wp_rewrite;
$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('page','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'show_all' => true,
'type' => 'list',
'next_text' => '»',
'prev_text' => '«'
);
if( $wp_rewrite->using_permalinks() )
if ( is_home() ) {
//fixes index.php weird error on how it displays the pagination URL which causes errors only on index.php
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . '?page=%#%/', 'paged' );
} else {
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
}
if( !empty($wp_query->query_vars['s']) )
$pagination['add_args'] = array( 's' => get_query_var( 's' ) );
echo paginate_links( $pagination );
}
这最初来自http://bavotasan.com/2011/simple-pagination-for-wordpress/,我稍微对其进行了修改,以便在主页上进行分页。
这又做了几件事。它为您的页面分页,每个页面都有自己的链接(我觉得很好),并且它还重写URL以允许非常永久链接。由于某种原因,wordpress在index.php上给出了一个404页面,所以我更改了'page /%#%/','paged');到'?page =%#%/','paged');并将其包装在is_home()的条件中。这解决了我的问题与分页和非常永久链接。
分页的可选样式
ul.page-numbers {
margin: 20px 0 10px;
width: 100%;
padding: 0;
font-size: 12px;
line-height: normal;
clear: both;
float: left;
}
ul.page-numbers li {
float: left;
}
ul.page-numbers a,
ul.page-numbers span {
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
background: -webkit-gradient(linear, left top, left bottom, from(#E4E3E3), to(#FFFFFF));
background: -moz-linear-gradient(top, #E4E3E3, #FFFFFF);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#E4E3E3', endColorstr='#FFFFFF');
padding: 3px 4px 2px 4px;
margin: 2px;
text-decoration: none;
border: 1px solid #ccc;
color: #666;
}
ul.page-numbers a:hover,
ul.page-numbers span.current {
border: 1px solid #666;
color: #444;
}
答案 1 :(得分:0)
要解决此问题,我所做的是打开wp-includes / link-template.php并注释掉第1389行,将其替换为以下内容:
//$home_root = preg_quote( trailingslashit( $home_root ), '|' );
$home_root = preg_quote( $home_root, '|' );
(使用的Wordpress版本是3.3.1)