为此,您需要:
使用2个查询而不是1个自定义分页,内置分页功能永远不会与此配合使用,WP没有2个post主循环的概念,但在我们开始之前
一个更简单、更适合用户的替代方案就是列出前5篇文章,下面有一个查看更多按钮。让按钮将用户发送到WP自动生成的归档文件,嘿,presto,您可以回避您的问题,提高可用性,消除原始想法所需的所有复杂混乱,而且它对浏览器更加友好。搜索引擎优化可能也有好处。
例如:
<a href="<?php echo get_term_link( \'videos\', \'cat\' ) ?>">View more Videos</a>
将使用户访问视频类别中的帖子存档,您可以使用该类别设置主题
category.php
, 甚至
category-videos.php
或
archive.php
等
Significantly 更简单,甚至可以通过最小的更改将其转换为小部件或短代码。
复杂的分页警告,您要做的是复杂的,不是复杂的方式,而是笨拙的方式。有一个很好的理由让您不经常看到这一点,当它完成时,它是一个丰富的JS接口,而不是PHP接口。
首先,您需要2个查询,您需要弄清楚如何查询所需内容,我建议使用标记或类别。使用PHP对它们进行排序最终会得到奇怪的结果,例如,如果你获取了20篇帖子,其中19篇在左列,这将很奇怪。
首先,您需要2个查询,而不是1个:
$args1 = [
];
$q1 = new WP_Query( $args1 );
// display left column
$args2 = [
];
$q2 = new WP_Query( $args2 );
// display right column
其次,需要设置分页,URL中需要2个分页字段,并且需要处理两次分页:
// figure out which page we\'re on, 1 if not set
$page1 = ( !empty( $_GET[\'column1\'] )) ? (int)$_GET[\'column1\'] : 1;
$page2 = ( !empty( $_GET[\'column2\'] )) ? (int)$_GET[\'column2\'] : 1;
$args1 = [
\'posts_per_page\' => 5,
\'paged\' => $page1
];
$q1 = new WP_Query( $args1 );
// display left column
$args2 = [
\'posts_per_page\' => 5,
\'paged\' => $page2
];
$q2 = new WP_Query( $args2 );
// display right column
很好,现在我们有2列,我们可以更改URL参数上的页面,也就是
?column1=5&column2=3
分别用于第5页和第3页
但我们没有分页控件!如果我们要9000页呢?我们不能使用标准分页系统,因为我们决定进行复杂的设置,所以我们必须从头开始构建自己的分页系统。
以下是第一列分页,假设有一个简单的下一页和上一页链接:
if ( $page1 > 1 ) {
?>
<a href="?column1=<?php echo $page1-1; ?>&column2=<?php echo $page2; ?>">Previous Page</a>
<?php
}
?>
<a href="?column1=<?php echo $page1+1; ?>&column2=<?php echo $page2; ?>">Next Page</a>
第二列分页是相同的,但数学在
$page2
改为变量。
如果您希望使用可单击的页码分页,这将非常复杂,因为您需要计算出有多少页,通过相关链接循环并打印出每个页码,突出显示当前页面,等等
评论
内联评论和多个评论区域并不是直截了当的,这听起来像是一个噩梦般的用户界面,但
question has the answer. 请记住,Stack Exchange有每个问题1个问题的策略,如果这不能满足您的查询,您需要询问后续问题以获取评论。
结论
现在,您已经掌握了做您想做的事情所需的所有信息。我再次建议不要这样做。如果它坏了,调试起来会很麻烦,而且它对用户不友好,这会让访问者望而却步。web上的标准模式是指向更全面的重点归档的链接。多层次的分页只会让人困惑
Showing more than one comment section on a page - WP Stack Exchange