2014-11-09 8 views
0

Я создал шаблон, который отображает миниатюры с предыдущими и следующими ссылками. Это нормально работает для обычных сообщений.Wordpress: Предыдущий/Следующий Миниатюры показывают текущую миниатюру на пользовательском сообщении

ПРОБЛЕМА

Я использовал один и тот же код для таможенного поста. Вместо того, чтобы показывать следующие и предыдущие миниатюры, он показывает миниатюру для текущего пользовательского сообщения. Я приложил скриншот, чтобы дать вам представление о том, что я пытаюсь создать.

enter image description here

ВОПРОС

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

Спасибо большое, Erlen

КОД ИСПОЛЬЗУЕМЫЕ

<!-- Left Arrow --> 
    <div class="post-pagination-left"> 
    <?php $prev_post = get_previous_post(); if (!empty($prev_post)): ?> 
    <a href="<?php echo get_permalink($prev_post->ID); ?>" class="link"> 

    <svg/></svg> 
    <span style="font-size:20px; font-weight:600;">&nbsp;Previous</span><br> 
    <?php echo $prev_post->post_title; ?></a> 

    <?php endif; ?> 
    <span class="pagination-left-image"><?php $previousPost = get_previous_post(true); $previousthumbnail = get_the_post_thumbnail($previousPost->ID, array(500,500)); echo $previousthumbnail; ?></span> 
    </div> 


    <!-- Right Arrow --> 
    <div class="post-pagination-right"> 
    <?php $next_post = get_next_post(); if (!empty($next_post)): ?> 
    <a href="<?php echo get_permalink($next_post->ID); ?>" class="link"> 
     <span style="font-size:20px; font-weight:600;">Next&nbsp;</span> 
    <svg/></svg><br> 
    <?php echo $next_post->post_title; ?> 

    </a> 

    <?php endif; ?> 
    <span class="pagination-right-image"><?php $nextPost = get_next_post(true); $nextthumbnail = get_the_post_thumbnail($nextPost->ID, array(300,300)); echo $nextthumbnail; ?></span> 

    </div> 

ответ

0

Вы используете get_previous_post два раза, но по-разному. Во второй версии вы устанавливаете для аргумента $in_same_term значение true. Я предполагаю, что это не поиск сообщения, поэтому возвращает пустую строку. get_the_post_thumbnail() получит миниатюру для текущего сообщения.

Пожалуйста, попробуйте следующее:

<!-- Left Arrow --> 
<div class="post-pagination-left"> 
    <?php // Get previous post. 
    $prev_post = get_previous_post(); 

    if (! empty($prev_post)) : ?> 
     <a href="<?php echo get_permalink($prev_post->ID); ?>" class="link"> 
      <svg/></svg> 
      <span style="font-size:20px; font-weight:600;">&nbsp;Previous</span><br> 
      <?php echo $prev_post->post_title; ?> 
     </a> 

     <span class="pagination-left-image"> 
      <?php echo get_the_post_thumbnail($prev_post->ID, array(500, 500));?> 
     </span> 
    <?php endif; ?> 
</div> 

Обязательно повторить это для следующего поста, а также.

Возможно, вы захотите переместить условный элемент вне div. Я не сделал этого в своем ответе, если он сломает ваш макет. Есть и другие улучшения, которые вы могли бы удостовериться в передаче get_permalink объекта вместо идентификатора сообщения, очистки встроенного CSS и т. Д.

Смежные вопросы