Как мне перейти по ссылке на следующую страницу сообщений?


Такие функции, как get_next_posts_link, позволяют получить HTML-ссылку на следующую страницу с несколькими параметрами для изменения (метка и максимальное количество страниц). Я хочу получить URL-адрес на следующую страницу, чтобы добавить пользовательские классы в ссылку.

Author: liamzebedee, 2012-07-07

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(), будет указан ваш класс.

 2
Author: Otto, 2012-07-07 22:01:25

Хотя в Кодексе 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 );
    }
}
 3
Author: liamzebedee, 2012-07-07 12:11:59