Wordpress вставка в запись страницы. А как вы оформили вывод постов на главной и в рубриках WordPress? Оформление ссылок на страницы поста

Жаропонижающие средства для детей назначаются педиатром. Но бывают ситуации неотложной помощи при лихорадке, когда ребенку нужно дать лекарство немедленно. Тогда родители берут на себя ответственность и применяют жаропонижающие препараты. Что разрешено давать детям грудного возраста? Чем можно сбить температуру у детей постарше? Какие лекарства самые безопасные?

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

Первым делом вам необходимо установить и активировать плагин Insert Pages . После активации просто переходим в раздел Записи » Добавить новую административной панели сайта для того, чтобы увидеть его в действии.

Если вы используете визуальный редактор, то заметите новую кнопку в меню под названием ‘Insert Page’ .

Клик на нее выведет всплывающее окно, где вы сможете выбрать страницу, запись, или произвольный тип записи, которые нужно добавить.

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

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

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

Параметр page для шорткода принимает слаг страницы или ее ID. Обратите внимание, что slug можно указывать любого типа записи, не обязательно страницы.

Также можно указать ID записи. О том, как узнать ID записи в WordPress мы уже писали ранее.

Добавляем произвольные типы записей в записи блога

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

Плагин Insert Pages позволяет вам добавлять произвольные типы записей на страницы и записи блога. Например, вы можете создать произвольный тип записи для галереи изображений, а затем использовать Insert Pages для добавления этих галерей в ваши записи или страницы.

Таким же образом вы можете создать произвольные типы записей для видео, портфолио, отзывов клиентов и т.д. для добавления их в записи/страницы.

Использование произвольных шаблонов для отображения вставленных страниц

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

Все, что вам нужно сделать, это создать пустой php файл и загрузить его в папку с вашей темой. Файл можно назвать как угодно. Например, custom-author.php.

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

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

H3.author-name { font-size:16px; } .author-thumbnail { float:left; padding:10px; } .author-bio { font-style:italic; font-family: Lora, Georgia, Serif; }

Вот так в итоге выглядит финальный вариант:

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

Здравствуйте, уважаемые читатели блога сайт. Наверное вы замечали, что на разных блогах главные страницы могут выглядеть по-разному .

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

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

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

Вид главной страницы и рубрик в WordPress по умолчанию

Как вы, наверное, знаете, если при написании поста в WordPress никаких особых телодвижений не предпринимать, то он, скорее всего, будет полностью отображаться на главной странице, а сразу под ним будет идти предыдущий пост, который вы опубликовали ранее. Почему я сказал «скорее всего»? Потому что вывод постов на главной по большому счету зависит от , а они бываю разными, в том числе и довольно-таки экзотическими.

Но по большей части для вывода постов на главной в файле index.php (именно этот файл-шаблон используется для формирования вида главной страницы в Вордпресс — смотрите статью по приведенной выше ссылке про темы) используется конструкция типа:

Именно благодаря ей и будут на главной выводиться статьи целиком, если только вы не используете замечательный , которому я целую статью в свое время посвятил. При просмотре полной версии статьи он никак не отражается на ее внешнем виде, но вот на главной уже будет выводиться не пост целиком, а только та его часть, которая находится выше тега More, а вместо самого тега будет выводиться надпись типа «Читать полностью».

Лично я пишу статьи без использования визуального редактора, и этот тег, вставленный в текст статьи (между абзацами), выглядит так:

Однако, можно поизгаляться и написать, например, вот так:

Думаю, что суть понятна — мы создаем с главной ссылку на статью не просто с «Читать подробнее» (одинаковым для всех статьей), а добавляем к нему ключевые слова, по которым вы хотите попасть в Топ поисковых систем. Не скажу, что этот способ стопроцентно приносит пользу, но некоторые блогеры (в том числе и я до некоторых пор) его используют.

до разбиения ее на страницы, задается в настройках . Для этого вам нужно будет зайти в нее, выбрать из левого меню пункты «Настройки» - «Чтение» и поставить в поле «На страницах блога отображать не более» нужное количество материалов (постов).

Какие недостатки можно отметить при данном типе вывода материалов на главную страницу WordPress? В общем-то, их несколько:

  1. Если выводить посты на главной целиком (без тега More), то в глазах поисковых систем у вас на сайте будет наблюдаться дублирование контента, что может привести к снижению трафика на ваш блог из Яндекса и Гугла. Не факт, что так и будет, но вероятность ухудшения в ранжировании будет очень высока. Грубо говоря, поисковики обидятся на вас за то, что вы на разных страницах сайта подсовываете им в индекс одно и то же, что забивает их сервера и приводит к дополнительным расходам.
  2. Опять же, без использования тега More вам придется, скорее всего, серьезно ограничивать число отображаемых на главной постов, чтобы она не была похожа на бесконечную и трудно юзаемую простыню. И даже в этом случае удобство пользования вашим блогом все равно будет не очень высоким.
  3. Если даже использовать тег More, но отдавать на главную очень большой фрагмент поста, то поисковики опять же могут усмотреть пусть и не полное, но частичное дублирование контента. Понятно, что глобального влияния это не окажет, но весь мир SEO строится на сотнях мелочей, которые и определяют вкупе успех или неудачу вашего проекта. Поэтому лучше сразу привыкать делать все «как надо», а не «так сойдет».
  4. Еще хуже ситуация с дублирование контента внутри сайта может стать, если вы и в рубриках, и в архивах тегов (а также и во временных архивах) выводите полные версии постов или их большие куски. Частично эту проблему можно решить закрытием от индексации поисковыми системами, например, временных и теговых архивов с помощью плагина (в приведенной статье описано как это можно сделать), но лучше все же этого не делать.

Есть способ, решающий проблему с дублированием контента при использовании функции the_content. Это специальный тег NOTEASER. Что он делает? При его использовании, на главной будет отображаться только та часть статьи, которая находится выше тега More, а на странице самого поста анонс не будет отображаться вовсе, (только текст, идущий сразу за MORE). Выглядеть конструкция будет так:

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

Вывод постов в рубриках — the_excerpt вместо the_content

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

Т.е. используется в шаблоне рубрик (обычно это файл-шаблон archive.php из папки с используемой вами темой оформления) такая же функция, как и для вывода постов на главной:

Посмотреть пример такого вывода постов в рубриках вы можете на блоге Михаила Шакина. Конечно же, изначально все это зависит от той темы оформления, которую вы используете. Но все в вашей власти. Достаточно будет и вывод постов в рубриках станет существенно более юзабельным, при этом значительно уменьшится степень дублирования контента на вашем блоге.

Причем, сделать эту настройку очень просто - достаточно заменить в файле archive.php код функции the_content () на the_excerpt () :

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

Как сделать анонсы постов в рубриках WordPress уникальными?

Правда, содержимое анонса поста при использовании функции the_excerpt () может быть заменено содержимым поля «Цитата» , если вы его заполняли при написании статьи (обычно, оно расположено сразу под окном ввода текста). Кстати, данный вариант и снижения дублирования контента, но я его не практикую в силу того, что «не практикую». В общем, банальная лень матушка.

Если области под названием «Цитата» вы под окном ввода текста поста в админке WordPress не наблюдаете, то удалите ваш сайт и переустановите движок заново, а потом перепишите все статьи и займитесь их продвижением. Ну, а если серьезно, то в самом верху админки в ее правой части вы найдете «язычок» с названием «Настройки экрана». Кликнув по нему вы легко сможете активировать нужную вам панель (или убрать лишнюю) простой постановкой или удалением нужной галочки.

Настраиваем вид постов в рубриках при выводе их с помощью the_excerpt

Таким образом, если вы не заполняете для каждого поста поле «Цитата», то при использовании the_excerpt () под заголовком по умолчанию будет. Вас это не устраивает? Как уже упоминал чуть выше, все можно настроить с помощью functions.php. Просто открываете его и добавляете несколько новых строк:

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

Если заголовки статей у вас такие же длинные как у меня, то в категориях можно. Для этого вместо the_excerpt () вставьте:

где вместо 7 вы можете поставить нужное вам число слов в заголовке поста, который будет отображаться в рубриках вашего блога. Но чтобы все это дело заработало, в файл functions.php нужно будет добавить следующую функцию:

Function do_excerpt($string, $word_limit) { $words = explode(" ", $string, ($word_limit + 1)); if (count($words) > $word_limit) array_pop($words); echo implode(" ", $words)." ..."; }

Вместо троеточия в последней строке можете поставить что-то другое, но, скорее всего, лучше так и оставить.

Как выводить на главной или в рубриках WordPress только заголовки постов?

Ну, тут совсем все просто. Достаточно будет удалить из файла-шаблона archive.php (отвечает за формирования архивов (категорий, тегов и т.п.), однако его может не быть в вашей теме оформления) или index.php (отвечает за формирование главной страницы блога, но зачастую и всех остальных с помощью условных операторов) функцию the_excerpt или the_content (смотря что именно используется).

Например, у меня за вывод постов в рубриках отвечает такая конструкция:

" rel="bookmark" title="">

Убрав из этой записи:

Я добьюсь того, что в рубриках у меня будут выводиться одни лишь заголовки постов без каких-либо текстов анонса или содержимого поля «Цитата». В ряде случаев такой вариант может быть вполне востребован. По-любому таким образом вы полностью решаете проблему дублирования, озвученную чуть выше по тексту.

Добавляем миниатюры в посты на главной и в рубриках

При использовании the_excerpt пост выглядит не очень привлекательно, ибо из него удаляется все форматирование, ссылки и картинки. В рубриках это худо бедно можно пережить, а вот на главной нужно будет как-то это дело оживить. Для этого как нельзя лучше подойдут миниатюры, которые уже довольно давно прижились в WordPress.

Если у вас не созданы миниатюры для всех постов, то не беда. В свое время у меня их тоже не было, ибо блог я начал вести еще до их появления в WordPress. Однако, существует замечательный плагин Auto Post Thumbnail для их автоматического создания на основе первой картинки в посте (меня такой вариант вполне устроил). После установки заходите в его настройки и жмете на кнопку для создания миниатюрных картинок различных размеров, за основу которых будет браться первая картинка поста.

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

Если у вас этой области «Миниатюра записи» по каким-либо причинам в админке при работе с постом не отображается, то как я и говорил выше — сносите блог и начинайте все заново. Правда я пошел по другому пути — добавил в замечательный файлик functions.php (из папки с используемой вами темой оформления) пару новых строк в самом низу:

И все заработало. Так вот, если проблем с миниатюрами у вас никаких нет, то можете попробовать заменить обычный вывод постов на главной или в рубриках WordPress с помощью the_excerpt на такую вот конструкцию, добавляющую миниатюру в пост :

По умолчанию миниатюра будет прижата к левому краю, а текст будет ее обтекать. Только я еще в свой стилевой файл style.css добавил небольшие от миниатюры, чтобы все это дело лучше воспринималось. Для этого достаточно было добавить лишь одну строчку:

Wp-post-image {padding:3px 15px 5px 5px;}

Однако, на главной я все же оставил вывод постов с помощью the_content и тега More, а в рубриках по-прежнему использую «голый» the_excerpt. Но все же описанный способ я реализовал, но не на совсем типичной для блога странице « ».

По-моему прикольно получилось.

Как сделать главную страницу в WordPress постоянной (статической)?

Собственно, пару лет назад я так и сделал. Тогда у меня на главной (по адресу — https://сайт) отображалась статья, которая сейчас живет на странице 404 ошибки (как ее настраивать смотрите ), посмотреть которую вы сможете, просто добавив какой-нибудь символ с клавиатуры в любой Урл моего сайта (в адресной строке, например, так — https://сайт/404).

Почему я отказался от статической главной страницы? Не знаю. Почему-то. В общем, решил в свое время вернуться к классике, хотя особых предпосылок к этому не было. Однако, давайте поясню как это все реализуется. Собственно, нам нужно решить четыре задачи:


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

А как вы оформили вывод постов на главной и в рубриках своего блога на WordPress?

Удачи вам! До скорых встреч на страницах блога сайт

Вам может быть интересно

Где скачать WordPress - только с официального сайта wordpress.org
Заголовки статей H1, H2, H3 в Вордпресс, а так же способы отображения категорий (the_content, the_excerpt и другие)
Как в WordPress можно выводить посты из категории с миниатюрами (их создание в Auto Post Thumbnail и catch_that_image)
Настройки блога на WordPress, которые вы должны сделать сразу после его установки Пропало левое меню в админке WordPress после обновления
Использование тега More (NOTEASER и NEXTPAGE) в WordPress для улучшения оптимизации Как узнать ID рубрики, категории, записи или страницы в WordPress и как вернуть столбец с ID в админку Вордпресса Проблема с All in One SEO Pack и ее решение - убираем rel=prev и исправляем rel=canonical, чтобы убрать из индекса дубли
Темы для WordPress - из каких шаблонов они состоят и как все это работает
Как писать статьи в WordPress - визуальный и Html редакторы, заголовки и выделение ключевых слов

Данная фича поможет удалить десяток лишних плагинов, которые занимаются вставкой в тело поста каких-либо простых данных с возможностью предварительной обработки. Скажем, вставить в любое место блок adsense. Или обновляющийся в реальном времени курс бакса. Или любое значение, хранящееся в БД WP или сторонней таблицы.

Бывает, надо воткнуть текущую дату прямо в середину текста. То есть, дату не на момент публикации поста, а текущую дату с точки зрения читателя. Или любую другую меняющуюся информацию или кусок JS кода без постобработки его движком. Или что-то, что нужно пересчитывать каждый раз при обновлении страницы, и это что-то должно находиться в теле поста. Или.. Ну, думаю, вы поняли. :)

Мы будем писать плагин! Он очень простой и не требует никаких знаний в создании плагинов для WP. Единственный его недостаток — отсутствие «морды» в админке WP, то есть, поставить такой каким-нибудь заказчикам будет не комильфо. Но для собственных нужд вариант отличный.

В папке /wp-content/plugins/ создаем файл с каким-нить уникальным именем, скажем, «insert-any-data-into-post.php». Вначале прописываем блок комментария, который WP будет впоследствии парсить для описания плагина в своей админке. Можно писать любые данные какие хочется, затем подключаем shortcode и пишем простую функцию. Весь код:

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

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

Function give_me_date_handler ($atts) { //из массива атрибутов делаем разрешенные переменные и задаем значения по умолчанию, необязательно но удобно extract(shortcode_atts(array("type" => "yesterday,today,tomorrow", "format" => "short,full"), $atts)); //перебираем какая нам дата нужна switch($type) { case "tomorrow": $time = strtotime("+1 day"); break; case "yesterday": $time = strtotime("-1 day"); break; default: $time = time(); } //перебираем вид даты if ($format == "short") $date = date("d.m.Y", $time); else $date = date("r", $time); return $date; }

Переменные для нашей функции задаются через тэг в посте таким вот образом:

Результат написанного выше тэга: 21.08.2019

Скриншотик из админки редактирования поста:

Через функцию можно тянуть данные с БД и возвращать их, можно просто возвращать JS-код, обернув его в ob_start() и ob_end_clean() для удобства. Можно также создавать несколько шоткодов и соотвественно несколько функций, таким образом вместив в один файл/плагин все необходимые «вкрапления» для использования внутри тела публикации.

Вообщем, полезная штука!

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

Вывести посты на странице в WordPress — это значит создать шаблон страницы (page template) и забацать туда цикл, .

Для чего нужно такое вытворять? Рассмотрим несколько вариантов:

  • представьте, что вам нужно вывести на одной странице записи сразу из нескольких категорий
  • а ещё таким образом можно обобщить на одной странице несколько таксономий, несколько меток и прочее

Вообще можно скомбинировать любые условия, используя статью. Параметры, которые описаны для WP_Query также подойдут и для query_posts.

Теперь я думаю порядок действий вам понятен? Создаете шаблон страницы, пихаете наверх query_posts, потом цикл, потом постраничную навигацию…

Кстати о ней. Просто так она не будет работать. Как это исправить?

Пожалуй стоит описать порядок действий более подробно.

  1. Создать шаблон страницы.
  2. Использовать с необходимым набором аргументов, при этом не забыв включить в него номер текущей страницы.
  3. Добавить цикл.
  4. Добавить функцию постраничной навигации, например wp_pagenavi().

А теперь полностью готовый код:

/* * Template name: Моя галерея */ $current_page = (get_query_var("paged" ) ) ? get_query_var("paged" ) : 1 ; $params = array ( "posts_per_page" => 7 , // количество постов на странице "post_type" => "artwork" , // тип постов "paged" => $current_page // текущая страница ) ; query_posts($params ) ; $wp_query ->is_archive = true ; $wp_query ->is_home = false ; while (have_posts() ) : the_post() ; /* в тело цикла вставьте HTML одного анонса записи, например:

*/
endwhile ; wp_pagenavi() ; // функция постраничной навигации

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

Плагин постраничной навигации WP-PageNavi

В предыдущем примере я использовал функцию wp_pagenavi() . Она отвечает за постраничную навигацию и является составляющей частью плагина WP-PageNavi (русское название: Список страниц ).

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

Все кто пробовал написать какой либо php код в посте, в надежде что он сработает, знают, что WordPress воспринимает такой код как простой текст. Однако иногда бывает удобно запустить, например, какой-нибудь цикл вывода прямо в тексте при написании статьи, ведь контент такой статьи будет обновляться динамически. Другим примером может служить возможность вызывать готовые функции в посте, в случае необходимости или, например, вставить какой-нибудь php файл в текст поста по средствам php функции require():

Require "my_script.php";

В общем, здесь фантазия безгранична и правда в том, что невозможность использования php в тексте статьи в некоторых случаях может стать настоящей проблемой. Как-то давно я столкнулся с такой проблемой, решил её взяв и немного переделав код из какого-то плагина (сейчас уже не вспомню название).

Итак, чтобы реализовать возможность вставлять исполняемые PHP скрипты в текст статьи / поста или статической страницы , нужно добавить в уже, наверное, до боли знакомый нам файл темы functions.php следующий код:

## Исполняемый PHP код в контенте записи WordPress. ## PHP_код ## ## @version: 1.0 if("Исполняемый PHP код в контенте"){ add_filter("the_content", "content_exec_php", 0); function content_exec_php($content){ return preg_replace_callback("/\(.+?)\[\/exec\]/s", "_content_exec_php", $content); } function _content_exec_php($matches){ if(" off" === $matches){ return "\n\n<"."pre>". htmlspecialchars($matches) ."\n\n"; } else { eval("ob_start(); {$matches}; \$exec_php_out = ob_get_clean();"); return $exec_php_out; } } }

После того, как код добавлен станет возможным использовать в статьях конструкцию такого вида:

Php код

Например:

// Комментарий global $wp_version; echo "Текущая версия WP: $wp_version";

Чтобы отключить выполнение кода, можно использовать следующую конструкцию. Она выведет просто код, как если бы мы вставили php код как текст.

Php код

Важно о защите

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

Чтобы обезопасить себя от возможных пагубных последствий этого хака, можно сделать следующую простую защиту (то что сразу пришло мне в голову): включать исполнение конструкции php код , только в том случае, если, например, у поста есть какое-либо произвольное поле или, скажем, пост написан в 00 минут. Естественно только вы будете знать эту хитрость при которой код будет исполняться и соответственно только вам будет доступна возможность вставить php код в статью.

Поддержите проект — поделитесь ссылкой, спасибо!
Читайте также
Система команд, вычисления в Maxima Для группировки выражений в системе maxima используются Система команд, вычисления в Maxima Для группировки выражений в системе maxima используются Способы поставить мелодию на звонок Xiaomi Способы поставить мелодию на звонок Xiaomi Highscreen Omega Prime Mini - Технические характеристики Highscreen Omega Prime Mini - Технические характеристики