Я шукав простий спосіб визначити, чи використовувати 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 );