我在 WordPress 中构建了一个带有分页的用户列表,但现在我已经用它构建了一个过滤器,但由于 ? 或 & 在 url 示例中:
示例:当用户单击过滤器时,用户将看到结果。但是当用户然后使用分页时,用户将获得 404 页面,因为分页使用“?” 而不是“&”。
网址示例:?meta_value=keyvalue?paged=2
那么,当您在 /users/ 上时,我如何才能使用“?”进行分页?当您使用过滤器时,分页将使用“&”而不是“?”。
我的代码:
<ul id="filter">
<li>Filter op:</li>
<li><a href="<?php echo '?meta_value=group01'; ?>">Group 01</a></li>
<li><a href="<?php echo '?meta_value=group02'; ?>">Group 02</a></li>
<li><a href="<?php echo '?meta_value=group03'; ?>">Group 03</a></li>
<li><a href="<?php echo '?meta_value=group04'; ?>">Group 04</a></li>
</ul>
<?php
$no=10;// total no of author to display
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if($paged==1){
$offset=0;
}
else {
$offset= ($paged-1)*$no;
}
$args = array(
'meta_key' => 'usergroup',
'meta_value' => $_GET['meta_value'],
'number' => $no, 'offset' => $offset,
);
$user_query = new WP_User_Query( $args );
if ( !empty( $user_query->results ) ) {
foreach ( $user_query->results as $user ) {
echo '<div class="item">';
echo '<a href="' . esc_html( $user->user_nicename ) .'">' . esc_html( $user->display_name ) . '</a>';
echo '</div>';
}
}
else {
echo '<h4>No agents found.</h4>';
}
$total_user = $user_query->total_users;
$total_pages=ceil($total_user/$no);
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => '?paged=%#%',
'current' => $paged,
'total' => $total_pages,
'prev_text' => 'Previous',
'next_text' => 'Next',
'type' => 'list'
));
?>
我会检查是否有任何内容$args['meta_value']
,如果有,然后更改'format' => '?paged=%#%',
为'format' => '&paged=%#%',
.
你可以这样做:-
$symbol = empty($args['meta_value']) ? '?' : '&';
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => $symbol.'paged=%#%',
'current' => $paged,
'total' => $total_pages,
'prev_text' => 'Previous',
'next_text' => 'Next',
'type' => 'list'
));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句