Циклическая навигация для пользовательских типов записей WordPress - PullRequest
0 голосов
/ 09 января 2020

Чтобы сделать предыдущую и следующую кнопки, которые l oop бесконечно перемещаются по сообщениям, я использовал этот код для создания шорткода, который отлично работает:

function prev_next() {

    if( get_adjacent_post(false, '', true) ) { 
        previous_post_link('<div class="navigator"><div class="prev-link">Previous%link</div>', '%title');
    } else { 
        $first = new WP_Query('posts_per_page=1&order=DESC'); $first->the_post();
        echo '<div class="navigator"><div class="prev-link">Previous<a href="' . get_permalink() . '">' . get_the_title() . '</a></div>';
        wp_reset_query();
    };

    if( get_adjacent_post(false, '', false) ) { 
        next_post_link('<div class="next-link">Next%link</div></div>', '%title');
    } else { 
        $last = new WP_Query('posts_per_page=1&order=ASC'); $last->the_post();
        echo '<div class="next-link">Next<a href="' . get_permalink() . '">' . get_the_title() . '</a></div></div>';
        wp_reset_query();
    }; 
}

add_shortcode( 'prev_next', 'prev_next' );

Но для того, чтобы добиться того же с помощью пользовательских Типы постов, я использовал этот код, который работает, но последний пост только когда-либо ссылается на себя:

function events_loop() {

    if( get_adjacent_post(false, '', true) ) { 
        previous_post_link('<div class="navigator"><div class="prev-link">Previous%link</div>', '%title');
    } else { 
        $first = new WP_Query('post_type=events&posts_per_page=1&order=DESC'); $first->the_post();
        echo '<div class="navigator"><div class="prev-link">Previous<a href="' . get_permalink() . '">' . get_the_title() . '</a></div>';
        wp_reset_query();
    };

    if( get_adjacent_post(false, '', false) ) { 
        next_post_link('<div class="next-link">Next%link</div></div>', '%title');
    } else { 
        $last = new WP_Query('post_type=events&posts_per_page=1&order=ASC'); $last->the_post();
        echo '<div class="next-link">Next<a href="' . get_permalink() . '">' . get_the_title() . '</a></div></div>';
        wp_reset_query();
    }; 

}

add_shortcode( 'events_loop', 'events_loop' );

Я видел много людей, сообщающих об одной и той же проблеме, поэтому я начинаю думать, что это на самом деле не возможно. Я не прав, конечно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...