Сен
30
33

Разбиение поста блога на страницы, функция wp_link_pages

страницы в постеИногда когда вы пишите большие посты в блоге, есть смысл разбивать их на несколько страниц. Причины для этого могут быть разные: во-первых, чем меньше текста, на странице, тем быстрее он загрузится и отобразится на сайте. Во-вторых, иногда количество текста в посте влияет на визуальное оформление блога — не всегда красиво выглядят «страницы-простыни» на сайте, когда сайдбар остался наверху, а вы все еще прокручиваете пост вниз она браузера. За реальным примером, в принципе далеко ходить не нужно — недавно мне для литературного блога прислали небольшой роман с просьбой опубликовать. Небольшой относительно, страниц на 200:) Понятно, что сразу я решил размещать его в одном посте (записи), разбивая на страницы по главам. Как это сделать и что из этого получилось — читаем дальше.

Итак, следует заметить, что система wordpress содержит в текстовом редакторе возможность разбиения постов не только для анонсов — тег more но и поддерживает разделение статьи на страницы. Соответствующие кнопки вы найдете в редакторе, как правило, после иконок добавления картинки и оформления CSS текста.

страницы редактор wordpress

Первая иконка — для тега more, вторая для разбиения на страницы. Перед тем как ее нажать нужно установить курсор в тексте после того абзаца, где хотите сделать переход на новую страницу. Кликаете и увидите в окне редактора разделитель с надписью Next Page. Если зайти в HTML режим редактирования, то там будет располагаться код разделителя:

<!--nextpage-->

Точно также как и с more после сохранения поста, вы сможете убедиться, что wordpress автоматически обрабатывает эти HTML коды и выводит текст, как вы его задали. Вот, например, как выглядит разбиение на страницы:

пост блога страницы

Как я уже сказал выше, хотел опубликовать целый роман, поэтому страниц о-очень много:) При клике на ссылки с цифрами вы будете попадать на нужную вам страницу. При этом, что важно URL адреса страниц, разумеются будут отличаться, так что проблем с индексацией каждой отдельной страницы не будет — для поисковика они будут разные, а не один цельный пост. Для Sape сайтов это, скорее всего, очень хорошо, тогда как в продвижении не очень — все страницы будут иметь одинаковые META данные ключевики, тайтл, дескрипшн. Но это такое, вернемся к более насущным проблемам.

Оформление страниц для поста

В кодексе wordpress сможете найти полезную информацию о том, как задать оформления дл этих страниц. Изначально, как вы видели, оно достаточно простое. Первым делом вы, конечно, можете добавить оформление через CSS стили — если глянуть в HTML код меню, то найдете там соответствующие стили. У меня, например, по умолчанию вся навигация находилась в DIV с классом page-link, поэтому можно было бы использовать что-то вроде:

.page-link {
 margin: 25px 0;
color:#000;
 text-align: center;
}

Для отображения страниц в посте используется функция wp_link_pages для которой есть несколько параметров:

  • before — текст, который располагается перед ссылками, по умолчанию это <p>Pages:
  • after — текст после ссылок, по умолчанию — </p>.
  • next_or_number — определяет «стиль» навигации — либо будут использоваться номера страниц (number) либо ссылка на следующую страницу (next).
  • nextpagelink — текст для ссылки на следующую страницу, по умолчанию «Next page».
  • previouspagelink — текст для предыдущей страницы, по умолчанию «Previous page».
  • pagelink — формат строки для номеров страниц, параметр % заменяется на номер страницы, например, если указать «Page %», то получится навигация «Page 1», «Page 2» и т.п. По умолчанию выводятся только номера страниц.

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

<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>

Можете попробовать в своем шаблоне сайта, функция располагался этот код сразу после the_content, то есть после контента записи блога.

Плагин Autopaginate

Для WordPress есть плагин, которые производит автоматическое разбиение на страницы — Autopaginate. Как обычно установка wordpress плагина стандартная а дальше в настройках «Параметры» — «Написание» вы можете указать количество слов, после которых будет автоматически добавляться разбиение на новую страницу.

Если я правильно понял, то по умолчанию плагин не будет «портить» посты и записи блога, где уже было выставлено разбиение на страницы вручную, поэтому не стоит переживать об этом. Если же вы хотите разбивать все посты без исключения, нужно включить опцию «force pagination».

Вот, в принципе, и все про разбиение поста на страницы — в этом, как видите, нет ничего сложного. Напоследок скажу лишь, что моя затея для публикации романа на 200 страниц все же не получилась, wordpress «скушал» только 180 страниц, после чего новые добавленные тексты сохранять отказывался. При этом также иногда возникали глюки и зависания скрипта, когда я, например, пытался выровнять абзацы по ширине для всего текста — слишком это сложное занятие. То есть, в принципе рассказы публиковать можно с разбиением по страницах для новых глав, только редактировать и вносить изменения нужно для небольшого блока текста и сохраняться после этого.

Для эффективной раскрутки нужна оптимизация сайтов всех его страниц — это поможет достичь максимального эффекта и результата.
Делаете украинский проект? — качественный хостинг украина по хорошим ценам и со стабильной работой вам понравится.
Надоело ходить в очках? Попробуйте контактные линзы заказать которые можно в интернете.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 6, средний балл: 3,33 из 7)
Загрузка...

категория Категории: Возможности;
теги Теги: , , , , .

комментария 33 к статье “Разбиение поста блога на страницы, функция wp_link_pages”

  • Александр   30.09.2011

    Что бы залить в мультистраничный пост огромный массив контента, надо:
    либо принудительно указать больше мемори в функшене (потом можно вернуть как было), либо:
    залить контент через соотв. ячейку базы данных блога с сохранением html команд текста.
    Заводишь пост какой задумал, потом находишь его в бд, потом копируешь туда всё что нужно прямо из типографа.

  • Tod   30.09.2011

    Александр, в принципе, была такая идея, но лень было в БД лезть. Но меня терзают смутные сомнения — 180 страниц в Word это, в принципе, и так не мало текста, возможно, больше просто нереально вместить в запись БД — она то ведь тоже не бесконечная, имеет ограничение.

  • MakerZ   01.10.2011

    Спасибо, полезная информация.

  • Kama   02.10.2011

    >>> Напоследок скажу лишь, что моя затея для публикации романа на 200 страниц все…
    Жесть. Вы тут в комментах уже сами исправились и конечно в БД колонка post_content имеет свои ограничения по максимально возможному объему в ней информации. Макс. размер ячейки кстати напрямую влияет на скорость работы с этой ячейкой… Такие романы надо в несколько постов публиковать или придумывать что-то другое (опять же с несколькими записями в таблице), но никак не совать 100500 символов в один пост!

  • Tod   02.10.2011

    Kama, на посты разбивать точно не получится, точнее по навигации там будут заморочки, как мне кажется, а вот организовать страницами — более-менее, так и сделаю. Просто интересно было влезет роман или нет:)

  • Василий Голян   14.10.2011

    Я ученый, поэтому и статьи для персонального сайта пишутся длинные — это во-первых, а во-вторых, иконки для разбиения статьи на страницы у меня в админке ВордПресса почему-то нет. До сегодняшнего дня публиковал статьи двумя, тремя, а то и пятью частями, связывая внутренними ссылками. Но прочитал ваш пост, узнал о коде разделителя !—nextpage— и сегодня в HTML режиме редактирования разбил статью на страницы. Теперь вернулся к вам поблагодарить. Только осваиваю движок, так что обязательно стану постоянным читателем. Удачи вам и этому проекту!

  • Tod   17.10.2011

    Василий, спасибо за положительный отзыв) буду стараться развивать проект и дальше.

  • Вишена   18.10.2011

    Ага, то есть страницу тоже можно разбить? У меня как раз были вопросы, как страницу с творчеством моего пра-пра-прадеда разбить на публикации. Теперь попробую.

  • Александр   07.11.2011

    Кстати, при применении мультистраничного поста надо включить соотв. допопции в плагинах Google XML Sitemaps и All in One SEO Pack.

  • Олег   06.02.2012

    У меня не работает. Установил TinyMCE Advanced. Он просто обрезает по метке разделение на страницы и все. До метки есть а после просто нет нигде. Может из-за того, что я добавил на страницы «комментарии» как описано здесь: http://euro-usd.ru/2009/04/30/wordpress-dobavlyaem-kommentarii-k-stranice/ то есть изменял файлы single.php и page.php. Но замена этих файлов на первоначальные ничего не дало. Та же картина. Подскажите. А то портянка получается не хилая.

  • Tod   07.02.2012

    Олег, я так понимаю, в шаблоне single не хватает отображения самих страниц, вот код:

    <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>

    Ставить нужно после вывода записи блога, то есть the_content.

  • Олег   07.02.2012

    Не получается та же песня. Сделал как здесь http://s1.ipicture.ru/uploads/20120207/92Jd2eI1.jpg
    Наверно придется в вручную как здесь http://hihc.ru/mirovozrenie. К стати автомат autopaginate.1.1 тоже самое Просто обрезаю су….и. Или вынести комментарии на отдельную страницу

  • Tod   08.02.2012

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

  • Олег   09.02.2012

    Ok. Спасибо так и сделаю.

    p/s А вторую запись функции разбиения только сейчас заметил. Да…!

  • Виктория   03.04.2012

    Скажите, а как вы сделали так, что у вас на блоге на каждой странице есть анонсы статей. Нигде не могу найти эту информацию ((((
    Я хочу осуществить такое на своем сайте. Ведь в вордпрессе только одна страница главная, а в остальных, можно разместить по одной статье. Как сделать технически, чтобы на каждой странице можно было публиковать анонсы?
    Заранее благодарю за ответ!

  • Tod   03.04.2012

    Виктория, нужно создавать посты (записи) и присваивать их категориями — тогда на страницах категорий у вас будет список всех постов. Страница — это просто статическая информация, там, конечно, анонсов нет.

  • Чеснок   08.04.2012

    «Если же вы хотите разбивать все посты без исключение, нужно включить опцию «force pagination».»

    Всю голову себе сломал так и не допёр как это сделать((

  • Андрей   17.04.2012

    Может быть Вы знаете решение проблемы?

    Ставлю разделение поста на несколько частей, все ок, однако нумерация страниц оказывается ниже установленных плагинов “social share buttons” и “IGIT Related Post With Thumb”. Как сделать так, чтобы нумерация страниц поста распологалась выше плагинов?

    Спасибо.

  • Tod   18.04.2012

    Андрей, видимо, эти плагины добавляю свой код в процессе отображения поста. Можно попробовать вариант в выводом кодов плагинов непосредственно вручную в файле шаблона single.php. То есть заходим в него — сначала добавляем код разбиения на страницу, а потом после него уже вызов данных модулей. Если нужно в настройках плагинов отключаем автоматическое их отображение.

  • Чеснок   18.04.2012

    1. удалите плагин соцзакладок и сделайте тоже самое при помощи http://share42.com/ — ускорите блог и вставка кода в любое место руками.
    2. GIT Related Post With Thumb так же можно руками прописать код для вставки этого блока (есть в настройках плагина вроде)
    3. После того как всё это руками после зе контент вставили уже можно руками же и определить место для вставки пагинации.

  • Александр   25.04.2012

    Добрый день! Что-то не вижу ни какой реакции на моем сайте. Только работает. Поставил плагин Autopaginate, сделал все как у Вас написано-никакой реакции. Подскажите пожалуйста, в чем может быть еще причина.
    С уважением
    Александр

  • Tod   25.04.2012

    Александр, здравствуйте, я разбивал страницы вручную через nextpage (первая часть поста), по плагину просто нашел интересный модуль и решил поделиться, на 100% в разных ситуациях я его не тестировал — возможно, проблема с шаблоном блога, возможно с каким-то другим плагином, а может и сам модуль не работает с последними версиями wordpress.

  • Андрей   16.09.2012

    Чеснок 08.04.2012
    «Если же вы хотите разбивать все посты без исключение, нужно включить опцию «force pagination».»

    Всю голову себе сломал так и не допёр как это сделать((

    Та же проблема, ни где не могу обнаружить как включить сию опцию…

  • Tod   17.09.2012

    Андрей, ну, очевидно надо включить ее настройках модуля — по крайней мере, она у меня там была.

  • Vito   03.03.2013

    Здравствуйте,

    У меня тема на wordpress 3.5.1, скачал плагин autopaginate, но он не разбивает страницы. В чём может быть проблема?

    Спасибо!

  • Tod   03.03.2013

    Vito, разные могут быть причины. Если плагин совместим с этой версией вордпресс, то вероятно источник проблемы нужно искать в шаблоне. Хотя, сходив на официальный сайт, увидел, что плагин не обновлялся 2 года и совместимость там явно не до 3.5)) нужно искать что-то поновее.

  • Татьяна   10.02.2014

    Добрый день!
    Подскажите пожалуйста, есть рубрики
    «Малыши до года» и в этой рубрике несколько записей
    Также есть еще рубрики и в них записи. Сайт планируется наполнять. При заполнении категории «Дети» — рубрика «малыши до года» столкнулась с тем, что при клике на данную рубрику выходит страница, и в ней перечисление записей (так-то все правильно). Но все записи не помещаются на страницу, их много. Как сделать чтобы внизу страницы появилась нумерация на следующие страницы, где будет продолжение записей? Надеюсь, понятно объяснила.
    Заранее спасибо!

  • Tod   10.02.2014

    Татьяна, для разбиения на страницы вам понадобится плагин WP-PageNavi (там есть описание установки). Хотя обычно в 99% шаблонов уже имеется разбиение на страницы, для этого используются функции next_posts_link и previous_posts_link.

  • Татьяна   12.02.2014

    ОГРОМНОЕ человеческое спасибо за совет! Все получилось!!!!!!!!!

  • Валентина   16.02.2015

    Здравствуйте, помогите пожалуйста.
    tur-elita.ru/cruiz/ не могу поставить поисковик никак.
    Тот, кто его писал, дает след инструкцию

    1.Разместите внутри секции вашей страницы поиска круизов код подключения визуальных стилей:

    2. В требуемом месте страницы разместите контейнер для формы поиска:

    3. Введите адрес вашей страницы (без указания имени сервера), на которой будет размещена поисковая форма и результаты поиска:

    4. В самом низу страницы, непосредственно перед тегом разместите код подключения поискового скрипта:

    Если вставить в запись, обновить и нажать поиск, все ищет, но не отображает дальнейшие стр поиска. Если код вставить в подвал, все работает :)
    Не понимаю как исправить для определенной записи :(

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


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

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

Поиск:
Последние посты
Лучшее в категории

Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости