Php 为wordpress后期分页添加一个范围
我有一些很长的帖子,一些有超过50页()当使用wp_link_页面时,它会给我50个内部帖子链接,显然这是不可用的 我需要为wp_link_pages函数添加一个范围,因为现在我们输出50个分页链接 输出应该如下所示:…45*6*78 我已经有了添加范围的逻辑,但现在我需要弄清楚如何将其添加到现有的wp_link_pages函数中 以下是示例函数:Php 为wordpress后期分页添加一个范围,php,wordpress,loops,pagination,Php,Wordpress,Loops,Pagination,我有一些很长的帖子,一些有超过50页()当使用wp_link_页面时,它会给我50个内部帖子链接,显然这是不可用的 我需要为wp_link_pages函数添加一个范围,因为现在我们输出50个分页链接 输出应该如下所示:…45*6*78 我已经有了添加范围的逻辑,但现在我需要弄清楚如何将其添加到现有的wp_link_pages函数中 以下是示例函数: function limitPagination(){ $displayPages = 5; $firstPage = 1;
function limitPagination(){
$displayPages = 5;
$firstPage = 1;
$lastPage = $numpages > 5;
while($numpages > $displayPages){
if(($pageNow > $firstPage +2) && ($pageNow < $lastPage - 2)){
echo (($pageNow - 2).($pageNow - 1).$pageNow.($pageNow + 1).($pageNow + 2));
}
}
}
函数限制分页(){
$displayPages=5;
$firstPage=1;
$lastPage=$numpages>5;
而($numpages>$displayPages){
如果($pageNow>$firstPage+2)和($pageNow<$lastPage-2)){
回声($pageNow-2)。($pageNow-1)。$pageNow($pageNow+1)。($pageNow+2));
}
}
}
这是我需要添加示例函数的函数:
// Add prev and next links to a numbered link list
function custom_wp_link_pages( $args = '' ) {
$defaults = array(
'before' => '<p id="post-pagination">' . __( 'Pages:' ),
'after' => '</p>',
'text_before' => '',
'text_after' => '',
'next_or_number' => 'number',
'nextpagelink' => __( 'Next page' ),
'previouspagelink' => __( 'Previous page' ),
'pagelink' => '%',
'echo' => 1
);
$r = wp_parse_args( $args, $defaults );
$r = apply_filters( 'wp_link_pages_args', $r );
extract( $r, EXTR_SKIP );
global $page, $numpages, $multipage, $more, $pagenow;
$output = '';
if ( $multipage ) {
if ( 'number' == $next_or_number ) {
$output .= $before;
for ( $i = 1; $i < ( $numpages + 1 ); $i = $i + 1 ) {
$j = str_replace( '%', $i, $pagelink );
$output .= ' ';
if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) )
$output .= _wp_link_page( $i );
else
$output .= '<span class="current-post-page">';
$output .= $text_before . $j . $text_after;
if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) )
$output .= '</a>';
else
$output .= '</span>';
}
$output .= $after;
} else {
if ( $more ) {
$output .= $before;
$i = $page - 1;
if ( $i && $more ) {
$output .= _wp_link_page( $i );
$output .= $text_before . $previouspagelink . $text_after . '</a>';
}
$i = $page + 1;
if ( $i <= $numpages && $more ) {
$output .= _wp_link_page( $i );
$output .= $text_before . $nextpagelink . $text_after . '</a>';
}
$output .= $after;
}
}
}
if ( $echo )
echo $output;
return $output;
}
//将上一个和下一个链接添加到编号的链接列表中
函数自定义页面($args=''){
$defaults=数组(
'在'=>'之前。uu('Pages:'),
'在'=>'之后
',
'text_在'=>''之前,
“=>”之后的“文本”,
'下一个\u或\u编号'=>'编号',
“下一页”=>(“下一页”),
“previouspagelink”=>(上一页),
“页面链接”=>“%”,
“echo”=>1
);
$r=wp\u parse\u args($args,$defaults);
$r=应用过滤器('wp\U链接\U页面\U参数',$r);
摘录($r,EXTR_SKIP);
全局$page、$numpages、$multipage、$more、$pagenow;
$output='';
如果($multipage){
如果('number'=$next\u或\u编号){
$output.=$before;
对于($i=1;$i<($numpages+1);$i=$i+1){
$j=str_replace(“%”,$i,$pagelink);
$output.='';
如果($i!=$page | |(!$more)&&($page==1)))
$output.=\u wp\u link\u页面($i);
其他的
$output.='';
$output.=$text\u前。$j.$text\u后;
如果($i!=$page | |(!$more)&&($page==1)))
$output.='';
其他的
$output.='';
}
$output.=$after;
}否则{
如果(更多美元){
$output.=$before;
$i=$page-1;
如果($i&&$more){
$output.=\u wp\u link\u页面($i);
$output.=$text_之前。$previouspagelink.$text_之后。“;
}
$i=$page+1;
如果($i目标函数中的钩子是:
$r = apply_filters( 'wp_link_pages_args', $r );
这意味着运行你的limitPagination
函数,你挂接到wp\u link\u pages\u args
。这也意味着你的limitPagination
函数必须接受$r
作为参数,并返回一个修改过的$r
,而不是回显输出。我很难理解逻辑是如何运行的rks在这里。因此,我在修改后的$r中返回的是新数组,其中包含下一个\u或\u编号的附加参数。请看这篇关于WP筛选器的文章:本质上,如果字符串进入筛选器,则必须输出字符串;如果数组进入,则输出数组。在您的情况下,$r
是一个数组。是的,您可以添加更多的argu我对它很感兴趣。