wordpress 3.1+ - настраиваемые типы сообщений - один шаблон - следующая и предыдущая навигационные ссылки

Я использую вордпресс 3.1

У меня есть 3 типа пользовательских типов: видео, галереи и подкасты. Они используют категории таксономии по умолчанию.

При просмотре отдельного пользовательского поста, скажем, видео, функция next_post_link() (или previous_post_link) работает по плану, но она ссылается только на следующий или предыдущий пост из этого пользовательского типа поста.

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


person liece    schedule 12.05.2011    source источник


Ответы (1)


Вам нужно будет удалить предложение post_type из SQL-запроса, используемого для получения соседнего сообщения. Это можно сделать, подключившись к фильтрам get_next_post_where и get_previous_post_where, хотя это не идеально, так как SQL-запрос передается как одна строка.

add_filter('get_next_post_where', 'my_get_adjacent_post_where_filter');
add_filter('get_previous_post_where', 'my_get_adjacent_post_where_filter');
function my_get_adjacent_post_where_filter($sql) {
  return preg_replace("/ AND p.post_type = '[^']*'/", '', $sql);
}
person Richard M    schedule 12.05.2011
comment
Работал! Большое спасибо, это указало мне правильное направление, теперь я просто изменю функцию, чтобы ограничить post_type, потому что теперь она получает все, даже страницы. - person liece; 13.05.2011
comment
изменил последнюю строку на: return preg_replace("| AND p.post_type = '[^']*'|", " AND (p.post_type = 'post' OR p.post_type = 'podcast' OR p.post_type = 'video') ", $sql); - person liece; 13.05.2011