Решение проблемы с тегом more на статичных страницах

Дата публикации:Июль 30, 2011

В WordPress существует два способа отображения цитат в блоге. Первый их них — это использование тега the_excerpt(), второй — применение тега more. С помощью тега more можно определить участок записи, который будет отображаться на главной странице блога. С этим часто возникают различные проблемы, поскольку тег more работает только на домашней странице, которая содержит список записей. Указанный тег перестает работать на других страницах. Недавно мы столкнулись с аналогичной проблемой и, благодаря форумам WordPress, быстро смогли отыскать для нее решение. Если вы хотите подключить тег more для страниц, чтобы выводить неполные записи, используйте следующий код внутри цикла:

<?php
global $more;
$more = 0;
?>
//код должен быть добавлен перед вызовом the_content

<?php the_content('Continue Reading'); ?>

http://www.wpbeginner.com/wp-themes/fixing-the-read-more-tag-problem-in-wordpress-static-pages

Поделиться

35 комментариев

  1. Илья says:

    Сделал как Вы сказали: в директории с темой, в файле page.php вставил код. Статья была урезана, появилась надпись "Читать полностью", все вроде ОК, но при нажатии на "Читать полностью", ничего не происходит. Если поможете решить проблему, буду очень Вам благодарен.

  2. Илья, у меня аналогичная проблема. Нажимаю на: more и ничего не вижу.

  3. Андрей says:

    Та же проблема

  4. Architect Of Ruin says:

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

    Добавьте после последней строки следующий код:

    <?php $more = true; ?>
    • Architect Of Ruin says:

      Т.е. код будет выглядеть так:

      <?php global $more; $more = FALSE; ?>
       
      <?php the_content('Read more &rarr;'); ?>
       
      <?php $more = TRUE; ?>
  5. Андрей says:

    не помогает

  6. Аноним says:

    А у меня вообще ничего не изменилось — ни статья не урезалась, ничего

  7. Дмитрий says:

    Спасибо, за статью. Все заработало.

  8. Простите, а можно для чайников путь к коду описать?)) буду благодарна

    • Architect Of Ruin says:

      надо найти файл с циклом. Он имеет вид:

      <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

      Обычно располагается в файле index.php, но может находиться и в других шаблонах в зависимости от используемой темы.

  9. Валерий says:

    Я вообще не нашел ничего (

  10. Tata says:

    Спасибо! Все работает, совет очень пригодился — смогла обрезать статьи в сайдбаре на страницах постов.

  11. Спасибо, все заработало. Как же долго я искал ответ. Спасибо еще раз Вам и Вашему блогу!

  12. Спасибо! Хорошая статья в смысле понимания кода. Но мне не помогло. Нашел три файла с циклами page.php; single.php; index.php Вписывал код внутри цикла по обеим вариантам, с текстом так ничего и не произошло. Тема f2. Может быть код нужно вводить во все три указанных файла?

    • Architect Of Ruin says:

      Вот еще небольшое дополнение: первоначальный код должен вставляться ДО вызова the_content(), но ПОСЛЕ вызова the_post(). Только тогда он будет работать.

      Вставлять в цикл в index.php.

      Вот пример правильной вставки:

      <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <?php global $more; $more = 0; ?>
          <div class="post" id="post-<?php the_ID(); ?>">
      	<div class="entry">
      	 <?php the_content('Read the rest of this entry &raquo;'); ?>
      	 </div>
  13. вставил код — ничего не происходит

  14. сайт вообще не загружается

  15. Alexey says:

    Спасибо Спасибо !)) спасибо))))

  16. Алексей says:

    Здравствуйте, подскажите у меня проблемма с тегом more .Я нашел фаил с цыклом, но он выглядит не так как вы показываете.
    Вот как у меня

  17. Алексей says:

    у меня за место the_content, art_content

    • Дмитрий says:

      art_content? Не может такого быть. Код лучше выкладывайте скриншотом со ссылкой.

  18. Алексей says:

    Здрасте еще раз, вот высылаю скрин http://prntscr.com/aoetu7

  19. Алексей says:

    Здравствуйте, по поводу моего скрина вышлите хоть какие-нибудь коментарии пожалуста.

    • Дмитрий says:

      В вашем случае сложно сказать, где и что нужно изменить, поскольку у вас тема, которой нет в оф. хранилище тем WP. У нее могут быть заданы какие-то свои настройки.

      Вы пробовали вставлять тег more в контент записи? (это отдельная кнопка в редакторе).

      Если пробовали, и запись не урезается, то в таком случае нужно попытаться заменить в коде the_content на the_excerpt.

      У вас открыт на скрине шаблон page.php. Но, возможно, вам нужно смотреть другие шаблоны и искать в них.

  20. Алексей says:

    Здравствуйте, на главнои странице тег more работает, мне бы хотелось, чтоб на других страницах роботало тоже

    • Дмитрий says:

      Посмотрите мой комментарий от 04.01.2014 at 01:03. Я там приводил пример правильной вставки кода.

      • Дмитрий says:

        И рекомендую делать это, если вы знаете, как потом восстановить сайт. Он может перестать работать после таких изменений, и надо будет вручную по FTP заходить и все откатывать обратно.

  21. exilon13 says:

    а если мне нужно сделать это не для записи а для страници? (в страницах тег «more» не работает)? Заранее спасибо за ответ.

    • Дмитрий says:

      Эта короткая заметка как раз и относится к страницам.

      • exilon13 says:

        да нет же, к записям применяется, а при использовании на странице не действует…

  22. Александр says:

    Добавил в шаблон

    Сатья обрезается и формируется ссылка «Читать полностью →» с линком «…./#more-308» который никуда не ведет…
    Что не так?
    (Тема sydney)

  23. Александр says:

    Добавил в шаблон

    			<div class="entry-content">
    				<?php while ( have_posts() ) : the_post(); ?>
    					<?php global $more;$more = false; ?>
    					<?php the_content('Читать полностью &rarr;'); ?>
    					<?php $more = true; ?>
    				<?php endwhile; ?>
    

    Сатья обрезается и формируется ссылка «Читать полностью →» с линком «…./#more-308» который никуда не ведет…
    Что не так?
    (Тема sydney)

  24. Ставьте легкий плагин Wp-showhide,с кодом [showhide type=»post» more_text=»Показать больше…» less_text=»Показать меньше…»]
    Текст, который нужно скрыть
    [/showhide] Скрывает текст в любом месте поста без заморочек

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.