Владельцы сайтов и блогов всегда стремятся улучшить навигацию по своим публикациям. Один из способов сделать это — добавить ссылки на предыдущую и следующую запись внутри каждой публикации.
В этой статье мы рассмотрим, как добавить эти ссылки навигации внутри каждого поста на вашем сайте WordPress с использованием функций и стилей.
Добавление ссылок на предыдущую и следующую запись в WordPress
Чтобы добавить ссылки на предыдущую и следующую запись внутри поста на вашем сайте WordPress, вам нужно поместить код, тот, что ниже, в файл functions.php вашей темы WordPress:
//навигация следующая/предыдущая function ws_navigation_links_content($content) { if (is_single()) { $previous_post = get_previous_post(); $next_post = get_next_post(); $navigation_links = '<div id="singnex">'; if ($previous_post) { $navigation_links .= '<div class="lion"><span>← Предыдущий пост</span>'; $navigation_links .= '<a href="' . get_permalink($previous_post->ID) . '">' . $previous_post->post_title . '</a>'; $navigation_links .= '</div>'; } if ($next_post) { $navigation_links .= '<div class="linx"><span>Следующий пост →</span>'; $navigation_links .= '<a href="' . get_permalink($next_post->ID) . '">' . $next_post->post_title . '</a>'; $navigation_links .= '</div>'; } $navigation_links .= '</div>'; $content .= $navigation_links; } return $content; } add_filter('the_content', 'ws_navigation_links_content');
Этот код создает блок с двумя ссылками: на предыдущую запись и на следующую запись из всех категорий на сайте.
Ссылки записи из текущей категории
У функций get_previous_post
и get_next_post
есть несколько полезных параметров. Один из таких параметров позволяет создавать ссылки на предыдущие и следующие посты, находящиеся в той же категории, что и текущий пост. Для этого нужно внести небольшую корректировку в аргументы функций, а именно добавить значение true
. Вот как это выглядит:
//навигация следующая/предыдущая из той категории, что и текущий пост function ws_navigation_links_content($content) { if (is_single()) { $previous_post = get_previous_post(true, '', 'category'); $next_post = get_next_post(true, '', 'category'); $navigation_links = '<div id="singnex">'; if ($previous_post) { $navigation_links .= '<div class="lion"><span>← Предыдущий пост</span>'; $navigation_links .= '<a href="' . get_permalink($previous_post->ID) . '">' . $previous_post->post_title . '</a>'; $navigation_links .= '</div>'; } if ($next_post) { $navigation_links .= '<div class="linx"><span>Следующий пост →</span>'; $navigation_links .= '<a href="' . get_permalink($next_post->ID) . '">' . $next_post->post_title . '</a>'; $navigation_links .= '</div>'; } $navigation_links .= '</div>'; $content .= $navigation_links; } return $content; } add_filter('the_content', 'ws_navigation_links_content');
Добавив значение true
в аргументы функций, мы говорим WordPress, что необходимо искать следующий или предыдущий пост именно в той же категории, что и текущий пост. Это позволяет легко создавать навигацию между постами внутри одной категории.
Стили оформления навигации
На последнем этапе остается стилизовать все эти ссылки с помощью CSS-стилей. Для этого откройте файл style.css и добавьте в него следующий код:
/* Стили навигации singl */ #singnex { display: flex; justify-content: space-between; margin-top: 20px; } #singnex .lion { width: 50%; text-align: left; padding-right: 10px; } #singnex .lion a { text-align: left; } #singnex .linx { width: 50%; text-align: right; padding-right: 10px; } #singnex .linx a { text-align: right; } #singnex span { display: inherit; font-size: 14px; } #singnex a { text-decoration: underline; } #singnex a:hover { text-decoration: none; } @media (max-width: 480px) { #singnex { display: block; } #singnex .lion { width: 100%; padding-right: 0px; margin-bottom: 15px; } #singnex .linx { width: 100%; text-align: left; padding-right: 0px; } }
Результат.
Здравствуйте. Все работает, только смущает один момент. Если название заголовка не достаточно длинное, то получается в одну строку, то есть примерно так: Следующая запись>ваап ор ворв. Как сделать, чтобы название поста всегда было под надписью «Следующая запись»?
Ева, здравствуйте! Самое простое решение, поставьте просто тег переноса строки. Пример:
Предыдущий пост