添加“1,2,3 ..”分页到WordPress主页
问题描述:
我有“较新和较旧”的链接,但我想分页像1,2,3 ...添加“1,2,3 ..”分页到WordPress主页
我添加了一个链接,ul代码看起来不错,但它只是链接到“第1页”,“第2页” ..没有任何功能
感谢您的任何意见:)彼得
答
尝试下面的代码,像1,2,3等添加分页..等
function my_numeric_posts_nav() {
if(is_singular())
return;
global $wp_query;
/** Stop execution if there's only 1 page */
if($wp_query->max_num_pages <= 1)
return;
$paged = get_query_var('paged') ? absint(get_query_var('paged')) : 1;
$max = intval($wp_query->max_num_pages);
/** Add current page to the array */
if ($paged >= 1)
$links[] = $paged;
/** Add the pages around the current page to the array */
if ($paged >= 3) {
$links[] = $paged - 1;
$links[] = $paged - 2;
}
if (($paged + 2) <= $max) {
$links[] = $paged + 2;
$links[] = $paged + 1;
}
echo '<div class="navigation"><ul>' . "\n";
/** Previous Post Link */
if (get_previous_posts_link())
printf('<li>%s</li>' . "\n", get_previous_posts_link());
/** Link to first page, plus ellipses if necessary */
if (! in_array(1, $links)) {
$class = 1 == $paged ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link(1)), '1');
if (! in_array(2, $links))
echo '<li>…</li>';
}
/** Link to current page, plus 2 pages in either direction if necessary */
sort($links);
foreach ((array) $links as $link) {
$class = $paged == $link ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link($link)), $link);
}
/** Link to last page, plus ellipses if necessary */
if (! in_array($max, $links)) {
if (! in_array($max - 1, $links))
echo '<li>…</li>' . "\n";
$class = $paged == $max ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link($max)), $max);
}
/** Next Post Link */
if (get_next_posts_link())
printf('<li>%s</li>' . "\n", get_next_posts_link());
echo '</ul></div>' . "\n";
}
答
您将不得不使用paginate_links。这是来自Codex的标准实施。
<?php
global $wp_query;
$big = 999999999; // need an unlikely integer
$translated = __('Page', 'mytextdomain'); // Supply translatable string
echo paginate_links(array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?paged=%#%',
'current' => max(1, get_query_var('paged')),
'total' => $wp_query->max_num_pages,
'before_page_number' => '<span class="screen-reader-text">'.$translated.' </span>'
));
?>
Codex的引用。 https://codex.wordpress.org/Function_Reference/paginate_links
希望它有帮助。
欢迎来到Stack Overflow。请回顾[我如何问一个好问题](https://stackoverflow.com/help/how-to-ask)。你已经尝试过这么做了吗?问题应该显示**研究证据和尝试自己解决问题**,清楚地列出您的特定编码相关问题以及[最小,完整和可验证示例]中的任何相关代码(https:// stackoverflow .com/help/mcve),所以我们可以提供帮助。 – FluffyKitten