Разбиение поста блога на страницы, функция wp_link_pages
Иногда когда вы пишите большие посты в блоге, есть смысл разбивать их на несколько страниц. Причины для этого могут быть разные: во-первых, чем меньше текста, на странице, тем быстрее он загрузится и отобразится на сайте. Во-вторых, иногда количество текста в посте влияет на визуальное оформление блога — не всегда красиво выглядят «страницы-простыни» на сайте, когда сайдбар остался наверху, а вы все еще прокручиваете пост вниз она браузера. За реальным примером, в принципе далеко ходить не нужно — недавно мне для литературного блога прислали небольшой роман с просьбой опубликовать. Небольшой относительно, страниц на 200:) Понятно, что сразу я решил размещать его в одном посте (записи), разбивая на страницы по главам. Как это сделать и что из этого получилось — читаем дальше.
Итак, следует заметить, что система wordpress содержит в текстовом редакторе возможность разбиения постов не только для анонсов — тег more но и поддерживает разделение статьи на страницы. Соответствующие кнопки вы найдете в редакторе, как правило, после иконок добавления картинки и оформления CSS текста.
Первая иконка — для тега 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 страниц, после чего новые добавленные тексты сохранять отказывался. При этом также иногда возникали глюки и зависания скрипта, когда я, например, пытался выровнять абзацы по ширине для всего текста — слишком это сложное занятие. То есть, в принципе рассказы публиковать можно с разбиением по страницах для новых глав, только редактировать и вносить изменения нужно для небольшого блока текста и сохраняться после этого.
Для эффективной раскрутки нужна оптимизация сайтов всех его страниц — это поможет достичь максимального эффекта и результата.
Делаете украинский проект? — качественный хостинг украина по хорошим ценам и со стабильной работой вам понравится.
Надоело ходить в очках? Попробуйте контактные линзы заказать которые можно в интернете.
комментария 33 к статье “Разбиение поста блога на страницы, функция wp_link_pages”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Записи и посты wordpress, оформление записи (5,91 из 7, голосов - 47)
- Проблема с адаптивными изображениями в Gutenberg редакторе WordPress (3,88 из 7, голосов - 50)
- Умный копирайт в footer.php для wordpress (5,63 из 7, голосов - 30)
- Обновление плагинов и тем в WordPress: автоматическое, через FTP, скрытие уведомлений (5,19 из 7, голосов - 31)
- Polylang — плагин для мультиязычных сайтов на нескольких языках в WordPress (4,42 из 7, голосов - 31)
- Плагин TinyMCE Advanced – wordpress текстовый редактор (6,35 из 7, голосов - 20)
- Рубрики и категории wordpress, функция wp_list_categories (6,05 из 7, голосов - 20)
- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
- Для каких проектов нужна аренда виртуального сервера и что такое VPS
Что бы залить в мультистраничный пост огромный массив контента, надо:
либо принудительно указать больше мемори в функшене (потом можно вернуть как было), либо:
залить контент через соотв. ячейку базы данных блога с сохранением html команд текста.
Заводишь пост какой задумал, потом находишь его в бд, потом копируешь туда всё что нужно прямо из типографа.
Александр, в принципе, была такая идея, но лень было в БД лезть. Но меня терзают смутные сомнения — 180 страниц в Word это, в принципе, и так не мало текста, возможно, больше просто нереально вместить в запись БД — она то ведь тоже не бесконечная, имеет ограничение.
Спасибо, полезная информация.
>>> Напоследок скажу лишь, что моя затея для публикации романа на 200 страниц все…
Жесть. Вы тут в комментах уже сами исправились и конечно в БД колонка post_content имеет свои ограничения по максимально возможному объему в ней информации. Макс. размер ячейки кстати напрямую влияет на скорость работы с этой ячейкой… Такие романы надо в несколько постов публиковать или придумывать что-то другое (опять же с несколькими записями в таблице), но никак не совать 100500 символов в один пост!
Kama, на посты разбивать точно не получится, точнее по навигации там будут заморочки, как мне кажется, а вот организовать страницами — более-менее, так и сделаю. Просто интересно было влезет роман или нет:)
Я ученый, поэтому и статьи для персонального сайта пишутся длинные — это во-первых, а во-вторых, иконки для разбиения статьи на страницы у меня в админке ВордПресса почему-то нет. До сегодняшнего дня публиковал статьи двумя, тремя, а то и пятью частями, связывая внутренними ссылками. Но прочитал ваш пост, узнал о коде разделителя !—nextpage— и сегодня в HTML режиме редактирования разбил статью на страницы. Теперь вернулся к вам поблагодарить. Только осваиваю движок, так что обязательно стану постоянным читателем. Удачи вам и этому проекту!
Василий, спасибо за положительный отзыв) буду стараться развивать проект и дальше.
Ага, то есть страницу тоже можно разбить? У меня как раз были вопросы, как страницу с творчеством моего пра-пра-прадеда разбить на публикации. Теперь попробую.
Кстати, при применении мультистраничного поста надо включить соотв. допопции в плагинах Google XML Sitemaps и All in One SEO Pack.
У меня не работает. Установил TinyMCE Advanced. Он просто обрезает по метке разделение на страницы и все. До метки есть а после просто нет нигде. Может из-за того, что я добавил на страницы «комментарии» как описано здесь: http://euro-usd.ru/2009/04/30/wordpress-dobavlyaem-kommentarii-k-stranice/ то есть изменял файлы single.php и page.php. Но замена этих файлов на первоначальные ничего не дало. Та же картина. Подскажите. А то портянка получается не хилая.
Олег, я так понимаю, в шаблоне single не хватает отображения самих страниц, вот код:
Ставить нужно после вывода записи блога, то есть the_content.
Не получается та же песня. Сделал как здесь http://s1.ipicture.ru/uploads/20120207/92Jd2eI1.jpg
Наверно придется в вручную как здесь http://hihc.ru/mirovozrenie. К стати автомат autopaginate.1.1 тоже самое Просто обрезаю су….и. Или вынести комментарии на отдельную страницу
Олег, на картинке код с ошибкой, так работать не будет конечно, да и насколько вижу в шаблоне выводится уже один раз функция разбиение чуть дальше… проблема видать не в ней. Возможно, плагины попробовать какие-то поискать, их проще установить… что-то вроде плагин разбиение постов блога на страницы + на английском больше шансов найти.
Ok. Спасибо так и сделаю.
p/s А вторую запись функции разбиения только сейчас заметил. Да…!
Скажите, а как вы сделали так, что у вас на блоге на каждой странице есть анонсы статей. Нигде не могу найти эту информацию ((((
Я хочу осуществить такое на своем сайте. Ведь в вордпрессе только одна страница главная, а в остальных, можно разместить по одной статье. Как сделать технически, чтобы на каждой странице можно было публиковать анонсы?
Заранее благодарю за ответ!
Виктория, нужно создавать посты (записи) и присваивать их категориями — тогда на страницах категорий у вас будет список всех постов. Страница — это просто статическая информация, там, конечно, анонсов нет.
«Если же вы хотите разбивать все посты без исключение, нужно включить опцию «force pagination».»
Всю голову себе сломал так и не допёр как это сделать((
Может быть Вы знаете решение проблемы?
Ставлю разделение поста на несколько частей, все ок, однако нумерация страниц оказывается ниже установленных плагинов “social share buttons” и “IGIT Related Post With Thumb”. Как сделать так, чтобы нумерация страниц поста распологалась выше плагинов?
Спасибо.
Андрей, видимо, эти плагины добавляю свой код в процессе отображения поста. Можно попробовать вариант в выводом кодов плагинов непосредственно вручную в файле шаблона single.php. То есть заходим в него — сначала добавляем код разбиения на страницу, а потом после него уже вызов данных модулей. Если нужно в настройках плагинов отключаем автоматическое их отображение.
1. удалите плагин соцзакладок и сделайте тоже самое при помощи http://share42.com/ — ускорите блог и вставка кода в любое место руками.
2. GIT Related Post With Thumb так же можно руками прописать код для вставки этого блока (есть в настройках плагина вроде)
3. После того как всё это руками после зе контент вставили уже можно руками же и определить место для вставки пагинации.
Добрый день! Что-то не вижу ни какой реакции на моем сайте. Только работает. Поставил плагин Autopaginate, сделал все как у Вас написано-никакой реакции. Подскажите пожалуйста, в чем может быть еще причина.
С уважением
Александр
Александр, здравствуйте, я разбивал страницы вручную через nextpage (первая часть поста), по плагину просто нашел интересный модуль и решил поделиться, на 100% в разных ситуациях я его не тестировал — возможно, проблема с шаблоном блога, возможно с каким-то другим плагином, а может и сам модуль не работает с последними версиями wordpress.
Чеснок 08.04.2012
«Если же вы хотите разбивать все посты без исключение, нужно включить опцию «force pagination».»
Всю голову себе сломал так и не допёр как это сделать((
Та же проблема, ни где не могу обнаружить как включить сию опцию…
Андрей, ну, очевидно надо включить ее настройках модуля — по крайней мере, она у меня там была.
Здравствуйте,
У меня тема на wordpress 3.5.1, скачал плагин autopaginate, но он не разбивает страницы. В чём может быть проблема?
Спасибо!
Vito, разные могут быть причины. Если плагин совместим с этой версией вордпресс, то вероятно источник проблемы нужно искать в шаблоне. Хотя, сходив на официальный сайт, увидел, что плагин не обновлялся 2 года и совместимость там явно не до 3.5)) нужно искать что-то поновее.
Добрый день!
Подскажите пожалуйста, есть рубрики
«Малыши до года» и в этой рубрике несколько записей
Также есть еще рубрики и в них записи. Сайт планируется наполнять. При заполнении категории «Дети» — рубрика «малыши до года» столкнулась с тем, что при клике на данную рубрику выходит страница, и в ней перечисление записей (так-то все правильно). Но все записи не помещаются на страницу, их много. Как сделать чтобы внизу страницы появилась нумерация на следующие страницы, где будет продолжение записей? Надеюсь, понятно объяснила.
Заранее спасибо!
Татьяна, для разбиения на страницы вам понадобится плагин WP-PageNavi (там есть описание установки). Хотя обычно в 99% шаблонов уже имеется разбиение на страницы, для этого используются функции next_posts_link и previous_posts_link.
ОГРОМНОЕ человеческое спасибо за совет! Все получилось!!!!!!!!!
Здравствуйте, помогите пожалуйста.
tur-elita.ru/cruiz/ не могу поставить поисковик никак.
Тот, кто его писал, дает след инструкцию
1.Разместите внутри секции вашей страницы поиска круизов код подключения визуальных стилей:
2. В требуемом месте страницы разместите контейнер для формы поиска:
3. Введите адрес вашей страницы (без указания имени сервера), на которой будет размещена поисковая форма и результаты поиска:
4. В самом низу страницы, непосредственно перед тегом разместите код подключения поискового скрипта:
Если вставить в запись, обновить и нажать поиск, все ищет, но не отображает дальнейшие стр поиска. Если код вставить в подвал, все работает :)
Не понимаю как исправить для определенной записи :(