• Уважаемые форумчане!
    Помогите решить такую проблему, суть: необходимо сделать хук для функции The_content таким образом, чтобы меню «previous post» и «next post» оказались сразу же под текстом поста. Препятствуют этому различные плагины, которые тоже фильтруют функцию the_content.

    Так вот, я сделал такую функцию:

    function add_post_content($content) {
     if(is_single()){
      $content .= "<hr>" . "<div id=\"nav-below\" class=\"navigation\">" . "<div class=\"nav-previous\">" . previous_post_link() . "</div>" . "<div class=\"nav-next\">" . next_post_link() . "</div>" . "</div>" . "<hr>";
     }
     return $content;
    }
    add_filter('the_content', 'add_post_content', 1);

    html код отрабатывает нормально, появляется сразу после текста поста, а вот к функциям previous_post_link() и next_post_link() ни в какую не желают применяться стили из div, они тупо появляются в самом верху.

    Какие такие особенности у этих функций, как заставить их работать с прописанным html кодом?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Неужели никто не знает?

    Решил все вот так, использовав функции get_previous_post(), get_next_post() и get_permalink()

    function add_post_content($content) {
     if(is_single()){
      $previous = get_previous_post();
      $next = get_next_post();
      $content .=   '<hr>
                    <div id="nav-below" class="navigation">
                    <div class="nav-previous"><a href="' . get_permalink($previous->ID) . '">&larr; ' . get_the_title($previous->ID) . '</a></div>
                    <div class="nav-next"><a href="' . get_permalink($next->ID) . '">' . get_the_title($next->ID) . ' &rarr;</a></div>
                    </div>
                    <hr>';
     }
     return $content;
    }
    add_filter('the_content', 'add_post_content', 1);

    Немножко доработал, так чтобы пагинация определяла последний это пост или первый.

    function add_post_content($content) {
     if(is_single()){
      $previous = get_previous_post();
      $next = get_next_post();
        if (empty( $next )){
        $content .=	'<hr>
    		<div id="nav-below" class="navigation">
    		<div class="nav-previous"><a href="' . get_permalink($previous->ID) . '">&larr; ' . get_the_title($previous->ID) . '</a></div>
    		</div>
    		<hr>';
        } elseif (empty( $previous )){
        $content .= '<hr>
    		<div id="nav-below" class="navigation">
    		<div class="nav-next"><a href="' . get_permalink($next->ID) . '">' . get_the_title($next->ID) . ' &rarr;</a></div>
    		</div>
    		<hr>';
        } else {
        $content .= '<hr>
    		<div id="nav-below" class="navigation">
    		<div class="nav-previous"><a href="' . get_permalink($previous->ID) . '">&larr; ' . get_the_title($previous->ID) . '</a></div>
    		<div class="nav-next"><a href="' . get_permalink($next->ID) . '">' . get_the_title($next->ID) . ' &rarr;</a></div>
    		</div>
    		<hr>';
        }
      $content .= '</br>';
     }
     return $content;
    }
    add_filter('the_content', 'add_post_content', 1);
Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Функции next_post_link и previous_post_link в фильтре» закрыта для новых ответов.