WordPress get one page content

Содержание
  1. get_the_content() │ WP 0.71
  2. Возвращает
  3. Использование
  4. Примеры
  5. #1 Получим контент поста
  6. #2 Выведем контент поста, только если он не пустой
  7. Заметки
  8. Список изменений
  9. Код get_the_content() get the content WP 6.1
  10. Cвязанные функции
  11. loop (Цикл WP)
  12. Записи: посты, страницы, .
  13. Developer Resources
  14. Contents
  15. Parameters
  16. Return
  17. More Information
  18. Source
  19. Hooks
  20. Related
  21. Used By
  22. Changelog
  23. User Contributed Notes
  24. the_content() – выводит контент страницы или записи
  25. Параметры
  26. Пример 1. Выводим контент, изменив при этом текст ссылки «Далее»
  27. Пример 2. Включаем или отключаем обрезку по тегу
  28. the_content — изменяем содержимое поста перед выводом
  29. get_page_by_title() │ WP 2.1.0
  30. Возвращает
  31. Использование
  32. Примеры
  33. #1 Получим данные страницы
  34. #2 Исключим страницу из списка по заголовку
  35. get_the_content() — возвращает контент поста
  36. Параметры
  37. Пример 1. Выводим контент страницы без фильтров
  38. Пример 2. Как записать в переменную отфильтрованый контент
  39. Пример 3. Вывод содержимого записи/страницы с определённым ID
  40. Глобальные переменные
  41. the_content_more_link — позволяет изменить HTML ссылки «Далее»

get_the_content() │ WP 0.71

Получает контент текущей записи (поста). Используется внутри Цикла WordPress.

Когда функция используется на страницах архивов (не отдельная страница записи) и если в контенте используется тег-разделитель , то эта функция выведет не весь контент, а только текст до тега с последующей ссылкой «читать дальше» (текст ссылки можно изменить через параметр $more_link_text ).

Не фильтрует контент, как это делает the_content(). Поэтому, если нужно получить результат с применением к контенту всех хуков the_content , используйте конструкцию:

Хуки из функции

Возвращает

Использование

Под словом teaser понимается привлекающий текст до тега more. strip_teaser — значит удалить этот текст. Т.е., если установить параметр в true, то контент до тега на is_single() странице будет удален.

По умолчанию параметр отключен. Его также можно включить, указав в любом месте текста записи (принято указывать сразу после тега ).
По умолчанию: null

$post(WP_Post/Объект/число) (с версии 5.2) Запись (пост), контент которой нужно получить.
По умолчанию: null

Примеры

#1 Получим контент поста

Имейте ввиду, что эта функция не возвращает то же самое, что отображает the_content(). Чтобы вывести такой же контент, его нужно пропустить через хук the_content():

#2 Выведем контент поста, только если он не пустой

Для отдельного поста с ID 12:

Добавить свой пример

Заметки

  • Global. int. $page Page number of a single post/page.
  • Global. int. $more Boolean indicator for whether single post/page is being viewed.
  • Global. true|false. $preview Whether post/page is in preview mode.
  • Global. Массив. $pages Array of all pages in post/page. Each array element contains part of the content separated by the tag.
  • Global. int. $multipage Boolean indicator for whether multiple pages are in play.

Список изменений

С версии 0.71 Введена.
С версии 5.2.0 Added the $post parameter.

Код get_the_content() get the content WP 6.1

Cвязанные функции

loop (Цикл WP)

Записи: посты, страницы, .

Целый день ломал голову почему парсер не работает в цикле (foreach), и лимиты памяти прибавлял и парсер мучал, а оказалось get_the_content выдает не полный текст статьи.

Интересная фича вышла.

В описании the_content() есть заметка:

Когда функция используется на страницах архивов (не отдельная страница записи) и если в контенте используется тег-разделитель , то эта функция выведет не весь контент, а только текст до тега с последующей ссылкой «читать дальше» (текст ссылки можно изменить через параметр $more_link_text ).

Она относится и к этой функции. Добавил в описание.

Читайте также:  One click install linux

Источник

Developer Resources

Retrieves the post content.

Contents

Parameters

$strip_teaser bool Optional

$post WP_Post | object | int Optional

Return

More Information

When used inside The Loop, this function will get the content of the current post.

If used outside The Loop, you must inform the post you want to get the content from using the optional $post parameter.

An important difference from the_content() is that get_the_content() does not pass the content through the the_content filter. This means that get_the_content() will not auto-embed videos or expand shortcodes, among other things.

Source

Hooks

Filters the Read More link text.

Uses

Generates post data.

Determines whether a $post or a string contains a specific block type.

Balances tags of string using a modified stack.

Removes any invalid control characters in a text string.

Retrieves the number of times an action has been fired during the current request.

Retrieves protected post password form content.

Determines whether the post requires password and whether a correct password has been provided.

Sanitizes the current title when retrieving or displaying.

Retrieves the translation of $text.

Retrieves the full permalink for the current post or post ID.

Calls the callback functions that have been added to a filter hook.

Retrieves post data given a post ID or post object.

Used By

Uses Description
generate_postdata() wp-includes/query.php
Used By

Generates an excerpt from the content, if needed.

Display the post content for the feed.

Retrieves the post content for feeds.

Displays the post content.

Changelog

Used By Description
wp_trim_excerpt() wp-includes/formatting.php
Changelog
Version Description
5.2.0 Added the $post parameter.
0.71 Introduced.

User Contributed Notes

Note that get_the_content doesn’t return the same thing as what the_content displays. For that you need to do this:

Basic Usage
Display the post content, ending with “Read more” if needed

find out if the_content has content before output

in functions.php and similar files:

template inside the loop:

If you’re having trouble getting the $post parameter to work, make sure your WordPress is up-to-date: $post was only added in WordPress 5.2.

If you use get_the_content() before the global $wp_query object is set, the postmeta are not well generated because generate_postdata() use $wp_query.
To get around this issue, just construct a global $wp_query object before calling get_the_content()

You must log in before being able to contribute a note or feedback.

Источник

the_content() – выводит контент страницы или записи

Функция the_content() выводит содержимое текущего поста (записи, страницы или произвольного типа поста) в цикле.

Функция для использования внутри цикла WordPress. Если вам нужен контент не текущей, а определённой записи или страницы, то взляните на get_the_content().

Выводит полностью весь пост, если задействована на страницах:

  • записей (например в файле single.php ),
  • страниц (например в файле page.php ),
  • произвольных типов постов (например это может быть файл single- <тип_поста>).

Выводит только часть контента поста, которая находится до тега на следующих типах страниц:

  • рубрики category.php ,
  • метки tag.php ,
  • таксономии taxonomy.php .
  • поиск search.php ,
  • архивы archive.php ,

По поводу упомянутых файлов – не обязательно для отображения определённого типа страницы может задействоваться именно указанный файл, например для рубрик может использоваться и archive.php , и index.php , для лучшего понимания рекомендую посмотреть видеоурок про иерархию шаблонов.

Параметры

Функция ничего не возвращает.

Пример 1. Выводим контент, изменив при этом текст ссылки «Далее»

По сути в данной ситуации всё, что нам нужно сделать, это задать первый параметр функции.

В этот параметр вы даже можете передать заголовок записи/страницы функцией the_title(), вот так примерно:

Пример 2. Включаем или отключаем обрезку по тегу

Если функция the_content() работает не совсем так, как нам хотелось бы, например обрезает контент по тегу , когда мы этого не хотим, или наоборот, не обрезает, когда хотим, то мы можем изменить это поведение функции при помощи глобальной переменной $more .

Для этого нам нужно:

  1. Определить глобальную переменную перед циклом global $more;
  2. Затем, уже непосредственно перед функцией the_content() , присвоить ей значение 0 (отображать анонсы) или 1 (отображать целиком весь пост), например $more = 0; .

Подробнее про основной цикл читайте / смотрите видеоурок здесь.

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

the_content — изменяем содержимое поста перед выводом

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

Очень рекомендую обратить на этот фильтр внимание, так как благодаря ему WordPress делает с контентом страницы очень много всего перед выводом, например:

  1. Ререндерит блоки, благодаря чему мы можем изменять вывод блоков, как в этом примере.
  2. Производит автоматическую замену кавычек и других символов функцией wptexturize().
  3. Преобразует символы типо 🙂 в смайлики.
  4. Применяет функцию wpautop() для расстановки HTML-тегов абзацев

и переносов строки
.
Убеждается, что в контенте нет шорткодов, обёрнутых в

, если да, то удаляет этот тег.
Затем оборачивает вложения в тег

.

  • Фильтрует такие теги как и , чтобы добавить к ним атрибуты srcset , sizes и loading , которые могли не существовать на момент создания поста.
  • Если сайт использует https:// , то заменяет все http:// на https:// в контенте.
  • Применяет шорткоды функцией do_shortcode().
  • Ещё применяется функция capital_P_dangit(), которая исправляет неправильное написание WordPress (например, когда пишут с маленькой буквы: WordPress или wordpress).
  • Если для вывода контента вы используете например функцию get_the_content(), то ничего из этого применяться не будет!

    Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

    Пишите, если нужна помощь с сайтом или разработка с нуля.

    Источник

    get_page_by_title() │ WP 2.1.0

    Получает запись (страницу, пост, произвольный тип записи) по переданному заголовку записи.

    Если найдено несколько записей с одинаковым заголовком, то будет возращена запись с меньшим ID.

    Запись какого типа нужно получить указывается в третьем параметре $post_type . По умолчанию заголовок будет искаться у «постоянных страниц» (page).

    Так как функция использует сравнение MySQL ‘ = ‘, заголовок чаще всего не чувствителен к регистру, зависит от настроек MySQL.

    Если нужно получить ID по УРЛ, используйте специальную функцию: url_to_postid().

    Прежде чем использовать эту функцию обдумайте как она будет работать. Имейте ввиду, что запрос создаваемый этой функций не такой легкий, как например получение записи по ID. Функция ищет совпадения в таблице по неиндексированному столбцу, поэтому ей придется проверить все строки совпадающие с типом записи. Поэтому тут по умолчанию стоит тип page , обычно там не более 10 записей.

    С версии WP 6.1 использует WP_Query, которая научилась кэширует результат.

    Возвращает

    Массив — при $output = ARRAY_N или ARRAY_A. Данные возвращаемого массива полностью совпадают с полями таблицы wp_posts.

  • null — если запись не была найдена.
  • Использование

    Формат вывода найденной записи. Может быть:

    • OBJECT — возвращать как объект;
    • ARRAY_N — возвращать как нумерованный массив;
    • ARRAY_A — возвращать как ассоциативный массив.

    По умолчанию: OBJECT

    $post_type(строка/массив) Название типа поста. Для постов это ‘post’. Можно указать несколько типов в массиве: array(‘post’, ‘page’); .
    По умолчанию: ‘page’

    Примеры

    #1 Получим данные страницы

    Есть страница с заголовком «О сайте». Нам нужно получить объект данных этой страницы (все данные строки таблицы wp_posts в базе данных):

    Получив объект поста мы можем узнать разные данные записи. Например, так мы можем узнать ID записи по заголовку:

    #2 Исключим страницу из списка по заголовку

    Предположим мы выводим в меню страницы. Но нам не нужно выводить в это меню страницу с заголовком «Контакты». Исключаем так:

    Источник

    get_the_content() — возвращает контент поста

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

    Используйте внутри цикла WordPress для получения содержимого текущей записи, либо передайте ID определённого поста в качестве параметра.

    Параметры

    • false — по умолчанию полная версия содержимого поста выводится как обычно.
    • true — в этом случае в полной версии поста будет отсутствовать часть контента, которая находится до тега .

    $post (целое|WP_Post) ID или объект поста, контент которого мы хотим получить. По умолчанию – текущий пост в цикле. Параметр появился в WP 5.2.

    Пример 1. Выводим контент страницы без фильтров

    Главное отличие функции get_the_content() от the_content() не в том, что первая функция возвращает результат, а вторая выводит, а в том, что the_content() применяет огромное количество действий на фильтр the_content – там и интерпретация шорткодов, и замена кавычек и многое другое.

    Пример 2. Как записать в переменную отфильтрованый контент

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

    Либо буферизацию на функцию the_content():

    Пример 3. Вывод содержимого записи/страницы с определённым ID

    До версии WordPress 5.2 нам нужно было придумывать что-то в этом роде:

    Теперь же всё изменилось с приходом третьего параметра в функцию:

    Глобальные переменные

    Функция кстати работает со следующими глобальными переменными:

    $page (целое) Номер подстраницы при разделении поста по подстраницам тегом $more (логическое) Нужно ли отображать целиком пост или только отрывок до тега . Подробное описание этой глобальной переменной в примере. $pages (массив) Массив контента каждой из подстраниц контента поста, разделённых тегом . $multipage (логическое) Существует ли разделение контента на подстраницы.

    Как же так, ведь текст кнопки «Далее» можно указать в первом параметре функции the_content() ? Дело в том, что там вы можете указать только текст ссылки, а фильтр the_content_more_link позволяет полностью изменить её HTML код.

    В качестве примера добавим к ссылке «Далее» HTML-атрибут target=»_blank» .

    Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

    Пишите, если нужна помощь с сайтом или разработка с нуля.

    Источник

    Поделиться с друзьями
    КомпСовет
    Adblock
    detector