навигация с помощью get_adjacent_post
-
добрый день!
помогите пожалуйста разобраться с навигацией (предыдущая/след.) вот на этом посте.
я никак не могу добиться того, чтоб навигация происходила внутри категории.вот, например:
это код правой стрелки — как бы следующий пост.if(get_permalink(get_adjacent_post( false,'', true)) != get_permalink($post->ID)){ echo '<a href="'.get_permalink(get_adjacent_post( false,'', true)).'" class="portfolio-next fa fa-angle-right"></a>'; }
но ссылка получается на некий абстрактный след.пост.
в документации про get_adjacent_post сказано, что если написать get_adjacent_post( true,», true) то будет ссылка на следующий пост в этой категории. но этого не происходит и ссылка в этом случае получается на этот же пост на котором я нахожусь.
Надеюсь вы мне что-нибудь разъясните)P.S. Я воопще не профи — просто купил шаблон. Но автор отказался сам решать эту проблему. Сказал что дело в этих строчках.
-
а родные функции следующего и предыдущего поста не устраивают?
<?php next_post_link( '%link', 'Next post in category', TRUE ); ?>
меня то может и устроили, но я не понимаю куда это поставить.
у меня же еще задача, чтоб дизайн не полетел.вставить заместо вашего кода.
я так понимаю, что там используется get_adjacent_post только из-за того, чтобы класс ссылки указать?
ну так можно обойтись:?> <div class="portfolio-next fa fa-angle-right"> <?php next_post_link( '%link', 'Next post in category', TRUE ); ?> </div>
а в стилях темы поправить код:
.portfolio-next{} .fa-angle-right{}
на
.portfolio-next a{} .fa-angle-right a{}
точнее сказать не видя темы сложно.
мне не понятно какой код менять.. вот часть функций этой страницы, отвечающая за этот блок навигации:
function vntd_portfolio_navigation(){ global $post,$smof_data; // Check if Portfolio Navigation isn't disabled if(!get_post_meta($post->ID, 'nav_disabled', true)){ echo '<div id="portfolio-navigation" class="page-title-side">'; if(get_permalink(get_adjacent_post(false,'',false)) != get_permalink($post->ID)){ echo '<a href="'.get_permalink(get_adjacent_post(false,'',false)).'" class="portfolio-prev fa fa-angle-left"></a>'; } // Check if Parent Portfolio Page is set if(get_post_meta($post->ID, 'home_button', true) == 'enabled' && get_post_meta($post->ID, 'home_button_link', true)){ $home_url = get_permalink(get_post_meta($post->ID, 'home_button_link', true)); if(!$home_url) { $home_url = $smof_data['vntd_portfolio_url']; } if($home_url) { echo '<a href="'.$home_url.'" class="portfolio-home fa fa-th"></a>'; } } if(get_permalink(get_adjacent_post( false,'', true)) != get_permalink($post->ID)){ echo '<a href="'.get_permalink(get_adjacent_post( false,'', true)).'" class="portfolio-next fa fa-angle-right"></a>'; } echo '</div>'; } }
что значит какой? этот и меняйте:
if(get_permalink(get_adjacent_post( false,'', true)) != get_permalink($post->ID)){ echo '<a href="'.get_permalink(get_adjacent_post( false,'', true)).'" class="portfolio-next fa fa-angle-right"></a>'; }
вы же сами этот кусок кода привели в самом начале.
когда я делаю эту замену, dreamweaver сигнализирует о синтаксической ошибке.
echo '<div class="portfolio-next fa fa-angle-right">'; next_post_link( '%link', 'Next post in category', TRUE ); echo '</div>';
заменил, но както странно все выглядит на странице. в стилях темы не нашел этих определений:
.portfolio-next{} .fa-angle-right{}
но в библиотеке стилей «font-awesome.css» есть вот такой код:
.fa-angle-right:before {content: "\f105";}
видимо тут какие то дебри… наверное только автор может в этом всем разобраться)
Flector, в любом случае спасибо за потраченное время!
- Тема «навигация с помощью get_adjacent_post» закрыта для новых ответов.