ГлавнаяWordpressАвторские Функции → Перелинковка статей в WordPress (предыдущие записи из категории)

Перелинковка статей в WordPress (предыдущие записи из категории)

Комментариев: 94Перелинковка статей в WordPress (предыдущие записи из категории)
  • Спасибо, работает, но появился один баг. Если зайти в рубрику вот так "domain.ru/rubrika" то все нормально, а если в конце слеш поставить "domain.ru/rubrika/" то ошибка:

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/user/data/www/domain.ru/wp-content/themes/tema/functions.php:119) in /var/www/user/data/www/domain.ru/wp-includes/pluggable.php on line 868

    И еще на странице авторизации:

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/user/data/www/domain.ru/wp-content/themes/tema/functions.php:119) in /var/www/user/data/www/domain.ru/wp-login.php on line 302

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/user/data/www/domain.ru/wp-content/themes/tema/functions.php:119) in /var/www/user/data/www/domain.ru/wp-login.php on line 314

    ОТВЕТИТЬ ↓
    • Это проблема файла functions.php, а не проблема функции. Удалите ?> в вашем functions.php в самом конце. Если не поможет, покажите файл, я подскажу что не так, там проблема в неправильной разметке.

      Кстати, функцию нужно вставлять без начальной строчки <?php и конечной ?>. Скорее всего проблема в этом. Поправил пост - убрал эти строчки.

      ОТВЕТИТЬ ↓
      • Ок, заработало, спасибо. Я уже надоел наверное, но 1 последний вопросец. Зачем в functions.php указано post_num=5, если кол-во ссылок указывается в

        <ul>
            <?php kama_previous_posts_from_cat (5);  ?>
        </ul>
        
        ОТВЕТИТЬ ↓
        • Если вам нужно 5, то можете ничего не указывать (kama_previous_posts_from_cat();). Т.е. 5 это по умолчанию.

          ОТВЕТИТЬ ↓
  • Здравствуйте, все сделал как вы сказали спасибо, вроде работает, но вот например я зашел на страницу та вышло 5 ссылок потом ее перегрузил вышла одна и вот так они меняются все время. они не должны оставаться постоянными? или я что-то не так понял?

    ОТВЕТИТЬ ↓
    • Должны быть постоянными, для каждой новости свои, т.е. на странице новости ссылки меняться не должны. Если у вас при обновлении страницы чет меняется, то вы что-то не то сделали, какой-то рандомный вывод настроили, а не эту функцию.

      ОТВЕТИТЬ ↓
  • Я все сделал как вы и описали версия 3.0.1. все время меняется и берет из разных категорий.

    ОТВЕТИТЬ ↓
    • Проверил на 3.0.1, все пашет на ура. Вы что-то не так делаете!

      Если проблема не решится, киньте шаблон на t.kamaev@ya.ru

      ОТВЕТИТЬ ↓
  • подтверждаю, хак рабочий и весьма неплохой.

    ОТВЕТИТЬ ↓
  • Огромное спасибо! Сразу стал использовать но вот беда, заметил что комментарии выводятся от поста последнего в списке! Первичная the_ID() меняется на ID последней выведенной. Отсюда комментарии выводятся не из того поста которого надо а из последнего поста в похожих записях. Как после использования кода, записать в the_ID() ID именно начального поста?

    ОТВЕТИТЬ ↓
    • Вам нужно переопределить переменную $post, она меняется. Можно сделать как-то так:
      До вывода предыдущих записей, запишем переменную $post в какую-нить другую переменную, а потом вернем её на место:

      $post2 = $post;
      
      ... Здесь выводим предыдущие записи ...
      
      Возвращаем post на место:
      $post = $post2;
      unset($post2);

      Но это лечение симптомов, а не болезни...

      Вы функцию, как функцию использовали или взяли её код? Такой проблемы быть не должно, если пользоваться функцией (выводить записи через вызов функции).

      Если не получится исправить, киньте код, помогу, чем смогу smile

      ОТВЕТИТЬ ↓
  • Kama, спасибо!
    Я сначала начал использовать именно этот код как в посте но у меня вылетает ошибка и тогда я нашел отдельный код и вставил его в шаблон и восстановил переменную $post.
    Спасибо еще раз!

    ОТВЕТИТЬ ↓
    • Рад помочь! А что за ошибка вылетала, если помните?

      ОТВЕТИТЬ ↓
  • Такой вопрос, у меня тема, которая не содержит файла functions.php, пробовал его создать и поместить туда функцию, ничего не вышло.. Как поступить в данном случаи?

    ОТВЕТИТЬ ↓
    • Глобальный вопрос. Обязано работать! Вы что-то не так сделали наверное. Предполагать в чем причина - тыкать пальцем в небо... Поэтому, даже не знаю что и сказать. Прочитайте еще раз пост и этот тоже и попробуйте все сначала.

      ОТВЕТИТЬ ↓
      • Спасибо! Еще раз перечитал пост о functions.php, сразу все ясно стало.

        ОТВЕТИТЬ ↓
  • Заметил такую штуку. Если создаёшь новый пост со старой датой, задним числом, то на ссылки с др. страниц на него не появляются(

    ОТВЕТИТЬ ↓
    • Как так? Все должно работать правильно, даже если публиковать задним числом. Я проверял!

      ОТВЕТИТЬ ↓
      • Вот эта статья задним числом опубликована у меня. На неё нет ссылок вообще и сама она ссылается на первые 5 статей в рубрике, а не на следующие за ней статьи. Случайно заметил это.
        Может это быть из-за установленных каких-либо плагинов?

        ОТВЕТИТЬ ↓
        • Из-за плагинов не может быть вроде. У вас там дат нигде нет, чтобы посмотреть как статьи распределяются, на первый взгляд все работает нормально. *unknw*

          ОТВЕТИТЬ ↓
  • Здравствуйте, а не подскажите как сделать это для "Статей" а не для "Записей" ?

    ОТВЕТИТЬ ↓
    • Не понял вопроса, что подразумевается по статьями? Статьи это и есть записи, их разновидность, если быть точным.

      ОТВЕТИТЬ ↓
      • Простите, за неточность - имел ввиду Страницы в wordpress, которые тут wp-admin/edit.php?post_type=page
        Допустим страница имеет дочерние страницы, вот как сделать, чтобы дочерние страницы имели между собой круговую перелинковку? smile
        Не все же на сайтах используют представление информации в виде новостной ленты, некоторые используют иерархическую структуру.
        Заранее спасибо.

        ОТВЕТИТЬ ↓
        • Для этого нужно функцию переделывать сильно, извините, я за это не возьмусь, поэтому помочь в этом вопросе я вам не смогу *sorry*

          Такой иерархический подход лишен логики, если так подразумевается собирать простые записи, которых будет большое множество! *nea*

          Обычно постоянным страницам отводятся записи, которые сильно отличаются и являются частью структуры сайта, а таких записей/страниц не может быть много.

          Для иерархических страниц логичнее не кольцевую перелинковку делать, а просто выводить все дочерние/одноуровневые ссылки.

          Впрочем, все вышесказанное это лишь мое понимание необходимости постоянных страниц.

          ОТВЕТИТЬ ↓
  • Отличный хак но для меня было большим удивлением когда я его увидел в functions.php видать автор шаблона его туды занес но в статьях не включил

    ОТВЕТИТЬ ↓
    • Интересно! А что это за шаблон?

      ОТВЕТИТЬ ↓
Форма комментирования

¤ Вставляйте код кнопкой: "Код" (php, js, html, css, sql);
¤ Выделяйте HTML код кнопкой: "Выделить" (<div>);
¤ Перед отправкой комментария используйте "Превью";
¤ Не пишите спам/бред — бесполезно!

Подписаться на комментарии без комментирования:

X

Забыли пароль?