Шорткод для создания навигации предыдущего / следующего поста для CPT, который работает в цикле - PullRequest
0 голосов
/ 18 января 2020

Мне нужно создать пользовательскую навигацию по типу записи (Предыдущая / Следующая), которая будет работать в al oop - когда я достигну конца списка сообщений, нажав Далее, я перейду к публикации № 1, а когда в сообщении # 1 удар Предыдущий приведет меня к последнему. Мне нужно ввести короткий код, поскольку я использую конструктор страниц.

Вот что у меня есть:

function prev_navigation_post() {

if( get_adjacent_post(false, '', true) ) { 
  ob_start();
  previous_post_link('%link', '← Previous Post');
  $output = ob_get_clean();
  return $output;
  }

 else { 
   ob_start();
   $first = new WP_Query( array('post_type' => 'cpt_name'), 'posts_per_page=1&order=DESC'); 
   $first->the_post();
   echo '<a href="' . get_permalink() . '">&larr; Previous Post</a>';
   wp_reset_query();
   $output = ob_get_clean();
   return $output;
   };  
}

add_shortcode('prev_navigation_shortcode', 'prev_navigation_post');


function next_navigation_post() {

if( get_adjacent_post(false, '', false) ) { 
  ob_start();
  next_post_link('%link', 'Next Post &rarr;');
  $output = ob_get_clean();
  return $output;
  }

else { 
  ob_start();
  $last = new WP_Query( array('post_type' => 'cpt_name'), 'posts_per_page=1&order=ASC'); 
  $last->the_post();
  echo '<a href="' . get_permalink() . '">Next Post &rarr;</a>';
  wp_reset_query();
  $output = ob_get_clean();
  return $output;
  };
}

add_shortcode('next_navigation_shortcode', 'next_navigation_post');

Это модификация этого решения: { ссылка }

Однако проблема в том, что хотя кнопка «Предыдущая» работает хорошо, бесконечно циклически перебирая сообщения, кнопка «Далее» - нет - когда она достигает последнего сообщения, она перестает работать (связанная ссылка указывает на тот же пост, а не первый).

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