以防万一有人遇到我的情况:
我一直在寻找 OP 想要实现的目标,但是在 Woocommerce 的产品单页上:没有任何效果。主要问题之一是,由于某种原因,如果使用公共查询变量,Woocommerce 将重定向到原始 URL。所以,从@anstrangel0ver 的解决方案开始,这就是我所做的:
由于使用'page'作为查询变量是不可能的,我通过我的functions.php文件添加了一个:
function themeslug_query_vars( $qvars ) {
$qvars[] = 'review';
return $qvars;
}
add_filter( 'query_vars', 'themeslug_query_vars' );
然后我稍微修改了他的代码,粘贴在我的产品页面上:
$ID = $product->get_ID();
$page = (get_query_var('review')) ? get_query_var('review') : 1;
$total_comments = get_comments(array(
'orderby' => 'post_date',
'order' => 'DESC',
'post_id' => $ID,
'status' => 'approve',
'parent' => 0,
));
$per_page = 4;
$pages = ceil(count($total_comments)/$per_page);
$limit = $per_page;
$offset = ($page * $limit) - $limit;
$param = array(
'status' => 'approve',
'offset' => $offset,
'post_id' => $ID,
'number' => $limit,
);
// Pagination args
$args = array(
'base' => get_permalink($ID). '%_%',
// 'format' => 'comment-page-%#%',
'format' => '?review=%#%',
'total' => $pages,
'current' => $page,
'show_all' => false,
'end_size' => 1,
'mid_size' => 2,
'prev_next' => true,
'prev_text' => __('<'),
'next_text' => __('>'),
'type' => 'plain',
);
$comments = get_comments($param);
然后是一个 foreach 来创建我的自定义结构:
<?php foreach ($comments => $comment): ?>
//your code
<?php endforeach; ?>