Вопрос по wordpress, php – как получить следующий / предыдущий пост hrefs и заголовки в WordPress
Речь идет о просмотре одного поста. Я пытаюсь установить ссылки для предыдущего и следующего постов следующим образом:
<a class="prevpost" href="linktoprevpost" title="prev post's title"> </a>
<a class="nextpost" href="linktonextpost" title="next post's title"> </a>
где обе ссылки получают изображение в качестве фона, используя display: block и указанные ширину и высоту. Заголовки связанных сообщений должны быть доступны через атрибут title тегов a, чтобы пользователи могли видеть их при наведении курсора.
Я также хочу ограничить связанные посты в текущей категории. Поэтому мне нужно найти способ получить
Соответствие категории должно быть только первым уровнем, потому что я разделил свою страницу на 3 основные категории. Я использую
$a = get_the_category(get_the_ID());
$cat = $a[0]->name;
для получения имени первой категории и установки его в качестве дополнительного body-класса в header.php. Может быть, я мог бы использовать это снова?
Я также узнал, что используя previous_post_link () и next_post_link (), вот так
next_post_link('%link', '', TRUE);
дает мне сообщения той же категории без внутреннего содержания, поэтому 1 & amp; 2 & amp; 3 будет решена. Но, похоже, чтобы получить 4 & amp; 5 Мне тоже понадобится другой способ.
Использование Wordpress версии 3.4.1.
<?
echo '<a href="'.get_permalink( get_the_ID()-1 ).'" title="'.get_the_title( get_the_ID()-1 ).'">Previous</a>';
echo '<a href="'.get_permalink( get_the_ID()+1 ).'" title="'.get_the_title( get_the_ID()-1 ).'">Next</a>';
?>
все что вам нужно сделать, это использоватьget_adjacent_post
вместоnext_post_link
а такжеprev_post_link
, Обратите внимание, чтоget_adjacent_post
используется, чтобы получить предыдущий и следующий пост, вы можете прочитать об этомВот
Чтобы получить предыдущее сообщение и его атрибут заголовка, используйте этот
$prev_post = get_adjacent_post(false, '', true);
if(!empty($prev_post)) {
echo '<a href="' . get_permalink($prev_post->ID) . '" title="' . $prev_post->post_title . '">' . $prev_post->post_title . '</a>'; }
Чтобы получить следующий пост и его атрибут заголовка, используйте этот
$next_post = get_adjacent_post(false, '', false);
if(!empty($next_post)) {
echo '<a href="' . get_permalink($next_post->ID) . '" title="' . $next_post->post_title . '">' . $next_post->post_title . '</a>'; }
Теперь это мой код:
$p = get_adjacent_post(1, '', 1);
if(!empty($p)) echo '<a class="prevpost" href="'.$p->guid.'" title="'.$p->post_title.'"> </a>';
$n = get_adjacent_post(1, '', 0);
if(!empty($n)) echo '<a class="nextpost" href="'.$n->guid.'" title="'.$n->post_title.'"> </a>';
Функция возвращает объект предыдущего / следующего поста, который я могу использовать для генерации своих ссылок. Первый параметр предназначен для ограничения поста на одной и той же кошке.
Вчера я несколько раз искал в кодексе WordPress, но не встретил эту функцию, теперь случайно наткнулся на нее.
Если у кого-то есть метод получше / проще / быстрее, пожалуйста, напишите, чтобы получить приемлемый ответ.
get_permalink($post->ID)
вместо этого, поскольку это всегда даст вам правильную ссылку.