Я искал простой способ определить, использовать эту posts_nav_link()
функцию или нет, и все решения, которые я нашел в Интернете, были либо слишком сложными, либо ненадежными. Например, многие люди предлагали использовать $paged
глобальную переменную, но я обнаружил, что эта переменная возвращает то же значение для первой страницы, даже когда первая страница была единственной страницей!
Итак, я покопался в wp-includes/link-template.php
файле и обнаружил, что posts_nav_link()
функция просто выводит возвращаемое значение другой функции:
/**
* Display post pages link navigation for previous and next pages.
*
* @since 0.71
*
* @param string $sep Optional. Separator for posts navigation links.
* @param string $prelabel Optional. Label for previous pages.
* @param string $nxtlabel Optional Label for next pages.
*/
function posts_nav_link( $sep = '', $prelabel = '', $nxtlabel = '' ) {
$args = array_filter( compact('sep', 'prelabel', 'nxtlabel') );
echo get_posts_nav_link($args);
}
Используя эти знания, мы можем создать простой и эффективный способ определить, нужно ли нам добавлять ссылки для перехода между страницами:
$posts_nav = get_posts_nav_link();
if(empty($posts_nav)) {
// do not use posts_nav_link()
} else {
// use posts_nav_link()
}
Первоначально опубликовано в моем блоге здесь .
get_query_var( 'paged' )
дважды является излишним. Необязательный второй параметр этой функции является значением по умолчанию. Итак, вы могли бы упростить это до:$paged = get_query_var( 'paged', 1 );