Показывать только контент до тега more

10 июн. 2014 г., 04:57:55
Просмотры: 14.9K
Голосов: 10

Я использую шаблон Siren. В файле homepage.php используется этот код для отображения содержимого портфолио:

print_excerpt(200);

Но мне нужно показывать контент только до тега <!--more-->

Я попробовал использовать это:

the_content( $more_link_text, FALSE);

но это не работает. Отображается весь контент

2
Комментарии

Это премиум-тема, к которой у нас нет доступа

Pieter Goosen Pieter Goosen
10 июн. 2014 г. 07:25:52

я использую бесплатную версию http://topwpthemes.com/siren/

MajidGh MajidGh
12 июн. 2014 г. 03:14:22
Все ответы на вопрос 2
2
26

Вы можете использовать функцию WordPress get_extended для получения различных частей строки (части до и после тега <!--more-->). get_extended возвращает массив с тремя ключами, из которых важны ключи main и extended: $arr['main'] содержит часть перед тегом more, а $arr['extended'] — часть после тега more.

Это даст примерно следующий результат:

// Получаем содержимое записи
$content = get_post_field( 'post_content', get_the_ID() );

// Получаем части содержимого
$content_parts = get_extended( $content );

// Выводим часть перед тегом <!--more-->
echo $content_parts['main'];
10 июн. 2014 г. 11:28:54
Комментарии

Небольшое улучшение для согласованности с функцией the_content(): echo apply_filters('the_content', $content_parts['main']);

long long
20 мая 2019 г. 16:03:34

У меня были проблемы с тем, что фильтры блоков не применялись к $content_parts['extended'], даже при использовании apply_filters('the_content', $content_parts['extended']). Решением было сначала выполнить $filtered_content = apply_filters('the_content', $content), а затем выполнить $content_parts = get_extended( $filtered_content ).

Bence Szalai Bence Szalai
20 июл. 2023 г. 15:34:13
0

К сожалению, все функции в WordPress, которые должны выводить анонс (get_extended, get_extended), не применяют HTML-теги и не преобразуют переводы строк в абзацы, как ожидается.

Если вам нужно вывести анонс с форматированием, я рекомендую использовать следующий код:

global $more;
$more_backup = $more;
$more = 0;
the_content('');
$more = $more_backup;

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

8 февр. 2017 г. 02:52:32