Главная - Без рубрики - Плагин WordPress Posts In Page — добавляем Записи на любую статичную Страницу

Плагин WordPress Posts In Page — добавляем Записи на любую статичную Страницу

Довольно часто приходится читать на форумах и других источниках (том же Хабрахабре), что CMS WordPress — слишком примитивная система управления сайтом, и что на его движке нельзя создать ничего сложного, портального.

Косвенно, я согласен с некоторыми «писателями», но не со всем. Например, один из типичных вопросов новичков: Как добавить к статичной Странице вывод ленты с Записями?

Очень просто. Например, с помощью бесплатного плагина WordPress, который называется — Posts In Page. Я пишу — «с помощью плагина» — потому что знаю, что этот плагин — только один из вариантов добавления цикла Loop к статичной странице. Существуют и другие способы. Но вам, мне кажется, достаточно будет и такого плагина.

Его можно скачать в официальной Библиотеке WordPress, но там он — на английском языке. Ссылка на плагин Posts In Page в Библиотеке — http://wordpress.org/plugins/posts-in-page/

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

[sdfile url=»https://bestplugins.ru/wp-content/files/posts-in-page.zip»]

Я перевел на русский файл posts_in_page_help_view.php, который лежит в папке /assets плагина Posts In Page. Если в дальнейшем будете обновлять плагин, советую этот файл сохранить на компьютере и потом заменить его английскую версию через файловый менеджер вашего хостинга, или через FTP-программу.

Приведу несколько примеров автора плагина, взятых мной в Библиотеке, на странице Installation.

Установка плагина

Установка — стандартная.

После активации плагина найдите его страницу с Справкой в разделе Параметры.

Добавить записи на статичной странице вы можете двумя способами: с помощью коротких кодов и с помощью добавления функции PHP в файлах вашей активной темы WordPress.

Примеры коротких кодов

    • [ic_add_posts] — Выводит все Записи вашего сайта на статичной странице. Без ограничений.
    • [ic_add_posts ids=’1,2,3′] — Выведет три Записи с ID 1,2,3

Как определить ID Записи?

Способ первый: откройте страницу Записи. Наведите курсор на название записи. Слева внизу экрана (окна браузера смотрите длинную ссылку, в которой есть уникальный идентификатор (номер ID) этой записи:

9На скришоте — запись выделенная красным овалом, имеет ID — 116.

Способ второй: скачайте плагин — Reveal IDs. Установите и активируйте его. После активации у вас на страницах: Записи, Страницы, Рубрики и т.д. добавится в таблице справа колонка с списком уникальных номеров ID для каждого поля вашей таблицы сайта:

10

Остальные примеры вы можете найти в Справке, которую я перевел в плагине Posts In Page.

Можно использовать комбинированный шорткод, в котором применить несколько параметров вывода записей. Например:

  • [ic_add_posts category=’rubrika-1′ showposts=’3′] — Вывод записей в количестве 3-х из рубрики ‘rubrika-1’. Используется не имя рубрики, а ее ярлык. Не знаю, как будет если ярлык рубрики — на русском, не проверял.

11

  • [ic_add_posts showposts=’6′ post_type=’testimonials’ tax=’testimonial-type’ term=’customer’ order=’ASC’ template=’my-posts-in-page-template.php’] — Вывод записей пользовательскиго типа ‘testimonials’ с таксономией ‘customer’ из файла вашей темы — my-posts-in-page-template.php

Другие примеры смотрите на официальной странице плагина в Библиотеке.

Как добавить короткий код с помощью функции PHP

Для этого используйте функцию:

< ?php echo do_shortcode("[shortcode]"); ? >

где — [shortcode] — созданный вами шорткод с помощью плагина Posts In Page.

О admin

32 комментария

  1. Сергей

    Добрый день, а подскажите можно использовать одновременно несколько шорткодов, например
    [ic_add_posts showposts=’5′] — лимит вывода сообщений по количеству.
    +
    [ic_add_posts category=’category-slug’] — Вывод Записей из определенной Рубрики. Используйте Ярлыки, а не имена рубрик! Можно использовать несколько Рубрик, например: category-1,category2, и т.д. (без пробелов).
    нужно сделать чтоб на главной выводились записи но не все а например 5 последних. Так можно сделать?? Спасибо.

    • Олег Власов

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

  2. Сергей

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

  3. Олег Власов

    Сергей, я перевел страницу с примерами.
    Посмотрите внимательно на все примеры и сделайте правильные выводы.
    А на счет что можно модернизировать в плагине, а что нельзя, вы свой вопрос задайте автору плагина.

  4. Сергей

    Спасибо за интересную статью. Плагин пригодился.

  5. Олег Власов

    Пожалуйста, приходите еще.

  6. Андрей

    Как потом на той странице сделать постраничную разбивку? Плагины никакие работать не хотят, стандартная тоже не появляется(
    Только посты выводит, сколько их должно быть на одной странице

    • Олег Власов

      А зачем? Ведь есть стандартный функционал вывода ленты записей, с постраничной разбивкой?
      У страниц всегда есть свой вариант разбивки на подстраницы, так как тип Страница — это не тип Записи.
      Чтобы страницу разбить на части, надо использовать тег nextpage ( с тегами так же, как тег more с угловыми скобками)

  7. Андрей

    Ну в том и дело что на главной у меня стандартный функционал разбивки работает, а на странице нету.
    Оно создает ссылку sait.ru/stranitsa/page/2 и при переходе по этому url перекидывает просто на первую страницу(

  8. Олег Власов

    Все правильно, потому что страница не понимает, что у вас на первой половине — записи, и перебрасывает вас обратно.
    Нельзя Страницу делать с разбивкой вывода Записей, только на одной Странице.
    Зачем вы усложняете себе жизнь?
    Почему не сделать так:
    Делаем копию файла archive.php, называем файл именем category-XX.php, где XX — ID нужной рубрики, и выводим отдельной лентой Записи из нужной рубрики.
    Думаю, вам надо сначала изучить иерархию шаблонов темы, а потом подумать, как создать нужный файл с выводом определенных записей — codex.wordpress.org/%D0%98%D0%B5%D1%80%D0%B0%D1%80%D1%85%D0%B8%D1%8F_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2

  9. Андрей

    Разобрался с тем что вы написали, все получилось. Большое спасибо!)

  10. Олег Власов

    Рад, что помог разобраться, успехов.

  11. Дмитрий

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

    Этот плагин полностью решает одну из моих задач, за одним исключением.
    Я оформляю записи с помощью тега .
    Плагин корректно отбирает нужные мне записи и выводит их анонсы (т.е. текст до тега ).
    А мне нужны записи целиком, словно этот тег не используется.
    Чтобы результатом работы плагина была «простыня» из отобранных текстов, причем тексты отображались бы целиком.
    Можно ли решить такую проблему в рамках данного плагина? И если нет — то может подскажете, в какую сторону копать?
    (Прошу только учесть, что я новичок, и сложные переустройства кода шаблонов могу не одолеть).
    Заранее благодарен за любой ответ.

    • Олег Власов

      Дмитрий, спасибо за вопрос.
      Как мне вам ответить? На ваши слова: «А можно ли решить…» отвечу очень просто — не знаю, но догадываюсь.
      Скорее всего можно, если открыть файлы плагина, найти код автора, с помощью которого выводятся его анонсы, наверняка он написал код так, что выводятся только анонсы.
      Анонс — это функция the_excerpt().
      Целиком — это функция the_content().
      Дальше рассказывать не буду.
      Даже если вы новичок, но вам очень хочется получить свое решение — кто вам мешает немного изучить этот плагин и попытаться найти решение?
      Или найти того, кто знает, как изменить код плагина.
      Меня не надо — для меня это не интересно.

  12. Дмитрий

    В крайнем комментарии речь шла о теге «!—more—«

  13. Дмитрий

    После получаса ковыряния в коде плагина, нашел решение: объявил переменную $more как глобальную (перед циклом WordPress). И присвоил ей значение «1» (это и есть игнорирование тега more).
    И все заработало как надо. 🙂

    Большое спасибо.

  14. Олег Власов

    Видите, стоит подтолкнуть к решению и все ОК. А напиши сразу — поставили, спс и свалили дальше, так ничего и не поняв.
    Удачи в освоении системы)

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

      • Олег Власов

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

  15. Сергей

    Здравствуйте.
    Столкнулся при использовании данного плагина с такой проблемой: изображения в записи не отображаются, а точнее просто вырезаются. При том на странице редактирования записи в админке изображение есть, перехожу на страницу отображения записей — там пусто, в вебтулзе просто нет тега img. Подскажите, в чем может быть дело? Где копать?

    p.s. пробовал ставить права на папку с картинками 777

  16. Олег Власов

    Честно, не помню, умеет плагин выводить изображения или нет. По-моему, не умеет. Я не пользуюсь этим плагином и не могу однозначно ответить на ваш вопрос.

  17. Сергей

    Жаль. Все равно спасибо за оперативный ответ.

  18. Олег Власов

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

  19. Алексей Ковалев

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

  20. Дмитрий Кабак

    Вот здесь у вас не те галочки стоят: [ic_add_posts category=’rubrika-1? showposts=’3?] из за этого когда копируешь не работает…
    А так благодарю за статью, очень и очень сильно мне помогло……
    И еще стоит добавить, что чтобы изменить вид матириалов, нужно перейти на страницу с плагинами, нажать редактировать, и отредактировать файл «posts-in-page/posts_loop_template.php «

  21. Александр

    Олег, спасибо большое за материал! Очень был нужен такой плагин))

  22. Katya22@gmail.com

    Олег спасибо за такой плагин! И за то что разжевали и положили в рот! ))

  23. Андрей

    Доброго времени суток!
    После установки плагина Posts in Page вместо «оставьте комментарий» появилось — «Leave a comment».
    После отключения плагина все возвращается к нормальному русскому шаблону. Подскажите, что сделать
    С ув. Андрей

    • Олег Власов

      Скорее всего, в вашем плагине нет русской локализации. Плагин «перехватывает» создание формы комментариев и подставляет свой код.
      Откройте файл плагина: /posts-in-page/posts_loop_template.php, строка 31.
      Там мы найдете этот текст на английском.

  24. Сергей

    как этим плагином выводить последние посты? , у меня выводятся первые созданные….

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

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*