0
我有一些很長的帖子,有些有超過50頁(),當使用wp_link_pages時,它給了我50個內部帖子鏈接,顯然這是不可用的。添加一個範圍到WordPress的帖子分頁
我需要爲wp_link_pages函數添加一個範圍,因爲現在我們輸出了50個分頁鏈接。
輸出應該是這樣的:... 45 * 6 * 78 ...
我有邏輯添加的範圍內,但現在我需要弄清楚如何將它添加到現有的wp_link_pages函數?
下面是例子功能:
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));
}
}
}
這是我需要我的例子功能添加到函數:
// 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;
}
當談到理解邏輯在這裏的工作方式時,我很可怕。那麼,我在修改後的$ r中返回的是具有next_or_number的附加參數的新數組? – HjalmarCarlson
看看這篇關於WP過濾器的文章:http://codex.wordpress.org/Plugin_API#Filters基本上,如果一個字符串進入過濾器,一個字符串必須出來;如果一個數組進入,一個數組出來了。在你的情況下,'$ r'是一個數組。是的,你可以添加更多的參數。 – dnagirl