get_the_content()
Получает контент текущей записи (поста). Используется внутри Цикла WordPress.
Не фильтрует контент, как это делает the_content()
. Поэтому, если нужно получить результат с применением к контенту всех хуков the_content
, используйте конструкцию:
apply_filters( 'the_content', get_the_content() );
Возвращает
Строку — контент поста.
Использование
get_the_content( $more_link_text, $strip_teaser );
- $more_link_text(строка)
- Текст ссылки для места обрыва статьи (читать далее).
По умолчанию: null - $strip_teaser(логический)
- Под словом teaser понимается привлекающий текст до тега more. strip_teaser — значит удалить этот текст. Т.е., если установить параметр в true, то контент до тега
<!--more-->
на is_single() странице будет удален.По умолчанию параметр отключен. Его также можно включить, указав в любом месте текста записи <!—noteaser—> (принято указывать сразу после тега
<!--more-->
). - $post(WP_Post/Объект/число) (с версии 5.2)
- Запись (пост), контент которой нужно получить.
По умолчанию: null
Примеры
#1 Получим контент поста
Выведем контент поста со ссылкой «читать далее» где это необходимо:
<?php
$content = get_the_content('читать далее');
echo apply_filters( 'the_content', $content );
?>
Заметки
- Global. Число.
$page
Page number of a single post/page. - Global. Число.
$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<!--nextpage-->
tag. - Global. Число.
$multipage
Boolean indicator for whether multiple pages are in play.
Код get the content: wp-includes/post-template.php
WP 5.3
function get_the_content( $more_link_text = null, $strip_teaser = false, $post = null ) {
global $page, $more, $preview, $pages, $multipage;
$_post = get_post( $post );
if ( ! ( $_post instanceof WP_Post ) ) {
return '';
}
if ( null === $post ) {
$elements = compact( 'page', 'more', 'preview', 'pages', 'multipage' );
} else {
$elements = generate_postdata( $_post );
}
if ( null === $more_link_text ) {
$more_link_text = sprintf(
'<span aria-label="%1$s">%2$s</span>',
sprintf(
/* translators: %s: Post title. */
__( 'Continue reading %s' ),
the_title_attribute(
array(
'echo' => false,
'post' => $_post,
)
)
),
__( '(more…)' )
);
}
$output = '';
$has_teaser = false;
// If post password required and it doesn't match the cookie.
if ( post_password_required( $_post ) ) {
return get_the_password_form( $_post );
}
if ( $elements['page'] > count( $elements['pages'] ) ) { // if the requested page doesn't exist
$elements['page'] = count( $elements['pages'] ); // give them the highest numbered page that DOES exist
}
$page_no = $elements['page'];
$content = $elements['pages'][ $page_no - 1 ];
if ( preg_match( '/<!--more(.*?)?-->/', $content, $matches ) ) {
if ( has_block( 'more', $content ) ) {
// Remove the core/more block delimiters. They will be left over after $content is split up.
$content = preg_replace( '/<!-- \/?wp:more(.*?) -->/', '', $content );
}
$content = explode( $matches[0], $content, 2 );
if ( ! empty( $matches[1] ) && ! empty( $more_link_text ) ) {
$more_link_text = strip_tags( wp_kses_no_null( trim( $matches[1] ) ) );
}
$has_teaser = true;
} else {
$content = array( $content );
}
if ( false !== strpos( $_post->post_content, '<!--noteaser-->' ) && ( ! $elements['multipage'] || $elements['page'] == 1 ) ) {
$strip_teaser = true;
}
$teaser = $content[0];
if ( $elements['more'] && $strip_teaser && $has_teaser ) {
$teaser = '';
}
$output .= $teaser;
if ( count( $content ) > 1 ) {
if ( $elements['more'] ) {
$output .= '<span id="more-' . $_post->ID . '"></span>' . $content[1];
} else {
if ( ! empty( $more_link_text ) ) {
/**
* Filters the Read More link text.
*
* @since 2.8.0
*
* @param string $more_link_element Read More link element.
* @param string $more_link_text Read More text.
*/
$output .= apply_filters( 'the_content_more_link', ' <a href="' . get_permalink( $_post ) . "#more-{$_post->ID}\" class=\"more-link\">$more_link_text</a>", $more_link_text );
}
$output = force_balance_tags( $output );
}
}
return $output;
}
источник: https://wp-kama.ru/function/the_content