Как мне перейти по ссылке на следующую страницу сообщений?
Такие функции, как get_next_posts_link, позволяют получить HTML-ссылку на следующую страницу с несколькими параметрами для изменения (метка и максимальное количество страниц). Я хочу получить URL-адрес на следующую страницу, чтобы добавить пользовательские классы в ссылку.
2 answers
Зачем создавать ссылку самостоятельно, когда вы можете просто добавить класс в результат get_next_posts_link()
?
add_filter('next_posts_link_attributes','example_add_next_link_class');
function example_add_next_link_class($attr) {
return $attr . ' class="example-class"';
}
Теперь в ссылке, отправленной get_next_posts_link()
, будет указан ваш класс.
Хотя в Кодексе WordPress можно найти множество общих функций, в исходном коде также все еще есть недокументированные функции.
Функция previous_posts является одной из таких функций, которая задокументирована в источнике:
Отобразить или вернуть ссылку на страницу предыдущих сообщений.
Используя previous_posts(false), мы можем получить URL предыдущей страницы без отображения.
Однако это не проверяет, когда больше нет страниц, и вернет 404-е, если будет использоваться самостоятельно.
Проверяя источник get_next_posts_link, мы можем использовать код для проверки, достигли ли мы границы страницы, и возвращать только ссылку:
/**
* Gets the next posts link, checked against whether the page exists or not
*
* Returns the link or null if it doesn't exist
*/
function get_next_posts_url($max_page = 0) {
global $paged, $wp_query;
if ( !$max_page )
$max_page = $wp_query->max_num_pages;
if ( !$paged )
$paged = 1;
$nextpage = intval($paged) + 1;
if ( !is_single() && ( $nextpage <= $max_page ) ) {
return next_posts( $max_page, false );
}
}