Предыдущая и следующая ссылки WordPress на странице CPT, вызываемые из архива - PullRequest
0 голосов
/ 20 января 2019

У меня есть CPT и 3 пользовательских таксономии. Для каждой из таксономий существуют архивные страницы с элементами для термина таксономии, упорядоченными по заголовкам.

Страница элемента имеет нижние колонтитулы prevoius / next-Links, но они связаны с предыдущим / следующим элементом этого CPT в дату публикации.

Как я могу заменить это ссылкой на предыдущий / следующий элемент в архиве, как и ожидал посетитель?

Первая идея - перенести содержимое цикла со страницы архива и найти соседние элементы?

1 Ответ

0 голосов
/ 21 января 2019

Вам необходимо добавить этот код к вашему типу mypost.

/* Fist get the posts from specific taxonomy */
$postByTaxonomy = get_posts(array(
  'post_type' => 'post', // fruit
  'numberposts' => -1,
  //'order'          => 'ASC', // you can add to order by name
  //'orderby'        => 'title', // you can add to order by name
  'tax_query' => array(
    array(
      'taxonomy' => 'fruit-category', // category of Fruit CPT
      'field' => 'slug',
      'terms' => 'fruit-category-1', // This is the one you check from editor page
    )
  )
)); 

/* Store the IDs in array from get_posts above */
$theIDs = array();
foreach ($postByTaxonomy as $pbt) {
  $theIDs[] += $pbt->ID;
}
/* print_r($theIDs) = Array ( [0] => 3696 [1] => 3697 [2] => 128 [3] => 4515 [4] => 4516 [5] => 4514 ) */


/* Now we will use a php function array_search() for us to get the current post and we can set the previous and next IDs */
$current = array_search( get_the_ID(), $theIDs); /* here you need to get the id of the post get_the_ID() or $post->ID */
$prevID = $theIDs[$current-1];
$nextID = $theIDs[$current+1];

/* DISPLAY - Now that we have the IDs of the prev/next post you can use them to your template in your case the permalink */
<a href="<?php echo get_permalink($prevID); ?>"> Previous</a>
<a href="<?php echo get_permalink($nextID); ?>"> Next</a>
...