我尝试了多种解决方案,但都不起作用。
当我转到/page/2时,它不起作用。
我正在index.php我的主题执行自定义查询。
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}
$args = array(
'post_type' => array('post', 'music', 'videos'),
'post_status' => 'publish',
//'meta_key' => 'featured',
//'meta_value' => '1',
'posts_per_page' => 10,
'orderby'=>'date',
'order'=>'DESC',
'paged' => $paged
);
query_posts($args);
这是我的网站链接:我的网站主页
此页面不工作(404)-页面不工作(格式为-mywebsite/page/2/)
刚刚意识到这一页2作品-正在工作的页面(的格式-mywebsite.com/?page=2)
我已经为这个问题挣扎了一段时间,结果发现我们的WordPress没有为我设置一个必填字段,max\u num\u pages
。
所以我在循环中设置了这个变量。这是我的示例代码。
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array('post_type' => 'cpt', 'paged'=>$paged, 'posts_per_page' => 3);
$loop = new WP_Query($args);
$GLOBALS['wp_query']->max_num_pages = $loop->max_num_pages; // This is the line that did the magic for me.
进一步阅读后,我发现了这一点;
(int)$page
是帖子的页面,由查询var页面指定:get_query_var('page')
;(int)$pated
是全局变量包含帖子列表的页码(如存档)。这意味着,如果您使用的是页面模板(即单个视图模板)并且正在使用循环,则需要设置此变量。
我有时也很难让分页正确工作。尝试使用下面的查询,看看是否有帮助。我只添加了一行代码,并将您的查询更改为不使用$args
变量。
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts( array(
'post_type' => array(
'post',
'music',
'videos',
),
'post_status' => 'publish',,
'posts_per_page' => 10,
'orderby'=>'date',
'order'=>'DESC',
'paged' => $paged )
);
if (have_posts()) : while (have_posts()) : the_post();
?>
// Display your content here
<?php the_title ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
我也有同样的问题,这为我解决了所有问题。这允许我在索引上分页。php以及我的页面。php具有相当的永久链接。
超文本标记语言/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('post', 'music', 'videos'), 'orderby'=>'date', 'order'=>'DESC', 'posts_per_page' => 10, 'paged' => $paged);
$wp_query = new WP_Query();
$wp_query->query( $args );
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<!--your loop stuff here -->
<?php endwhile; ?>
<nav>
<?php paginate(); ?>
$wp_query = null;
$wp_query = $temp; // Reset
</nav>
这允许做几件事。一个是检查你的账户是在主页上、页面上还是单身,然后告诉$paged变量如何依次做出反应。它还允许您使用自定义文章类型查询分页。另外,通过不使用query_post,您可以避免使用它时有时会遇到的一些非常时髦的东西。页码();是我们现在引入的自定义函数:
在你的功能里面。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() )
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 'page', 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以允许非常长的链接。如果您检查该链接,则在部分内容中使用变量“s”代替“paged”。我用“paged”替换了“s”,我这边的一切都很好。
分页的可选样式
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;
}
编辑我后来意识到,在单击其中一个页面选项卡后,主页分页将中断。我通过替换条件语句并将其放在适当的位置来解决这个问题。我也更新了上面的代码。
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 'page', get_pagenum_link( 1 ) ) ) . '?page=%#%/', 'paged' );
Frontpage分页不起作用:当点击page2/3/4/etc时,它只是重新加载首页,而不显示旧条目。我尝试了几件事情:首先,禁用所有活动插件,以确保没有冲突。第二,尝试在设置中将永久链接更改为默认 我的代码是 谢啦
我还在这个问题上犹豫不决。。 我的WordPress博客上的分页无效-http://www.example.com/news 当你点击不同的页码时,它会正确更新网址(和页面标题),但不会显示不同的帖子。 我试过: 禁用所有插件 更改永久链接结构 更改“设置”中显示的博客文章数 没有什么对我有用。 我见过许多自定义查询的解决方案,但我使用的是您在“设置”中设置的“帖子”页面 在这种情况下,我应该修改
我有两个来自存档的自定义帖子类型。php之一是归档slug。另一个是类别slug。php。分页在归档slug上起作用。php,但在类别slug上的代码相同。php甚至不会显示。我对Wordpress和php有些陌生,所以我确定我在这里遗漏了一些东西,我只是不知道什么?
我到处寻找解决方案,尝试了不同的解决方案,包括Chip Bennett在这里详细解释的解决方案,但我似乎仍然无法让它工作。 结果的第一页工作正常,但是从第2页开始,它只显示索引模板,并且仍然显示页面未找到。这是我的代码: 功能。php 提取查询参数的代码 循环代码: 任何建议将不胜感激。 编辑: 我还注意到,当我尝试访问第2页时,URL被修改了。 这是第1页URL: 第2页URL:
我有一个自定义分类法分配给一个自定义帖子类型。我创建了一个名为“taxonomy brands.php”的模板,当我访问自定义分类法存档时会调用该模板,但是当我调用该模板中的循环时,它认为我没有任何帖子(它跳过if(have_posts())并执行else{}).我的自定义帖子类型为“has_archive”= 代码中是否有可能导致这种情况?提前感谢你的帮助。 这是我用来注册CPT的代码。 这是我
第一wp_query后WordPress分页不工作。我正在对第一个wp_query对象返回的数据执行一些操作。但是在第二次查询之后,分页不起作用。 我尝试从其中一个查询中删除“paged”参数,该参数要么给出错误的结果,要么没有分页。例如,此查询第一次返回28个结果,但第二次查询后仅返回6个结果。如果我从第一个查询中删除'paged'参数并将其添加到第二个查询中,那么当它应该返回3页时,只返回一页