Как вывести the_excerpt без обёртки тега P?

13 янв. 2011 г., 22:59:00
Просмотры: 30K
Голосов: 14

В приведенном ниже фрагменте кода я пытаюсь вывести the_excerpt без тегов. Однако исходное форматирование показывает, что the_excerpt всегда обёрнут в теги P. Как можно получить отрывок без тегов?

foreach($myrecentposts as  $idxrecent=>$post) 
{ ?>
<li class="page_item">
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
    <?php echo strip_tags(substr( the_excerpt(), 0, 75 ))."..." ?>
</li><?php }    
echo "</ul>
</div>";}
0
Все ответы на вопрос 6
0
19

В вашем коде выше используйте get_the_excerpt() вместо the_excerpt(), потому что последний выводит анонс на экран, а не передает его в другие функции...

13 янв. 2011 г. 23:36:09
1

Как насчёт удаления фильтра wpautop перед вашим списком?

remove_filter( 'the_excerpt', 'wpautop' );

(Убедитесь, что добавите его обратно после, чтобы не нарушить остальное форматирование...)

13 янв. 2011 г. 23:03:44
Комментарии

Это правильный ответ, который конкретно удалит форматирование на той странице, которую вы используете для вывода контента.

Charles Charles
17 окт. 2016 г. 19:02:49
0

Я попробовал вышеуказанные решения, но они не сработали для меня.

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

// $search_text = the_excerpt();
$search_text = get_the_excerpt();

// Удаляем тег <p>, заменяя его пустой строкой
$tags = array("<p>", "</p>");
$search_content = str_replace($tags, "", $search_text);

// Выводим содержимое

echo $search_content;

Надеюсь, это решение окажется полезным для кого-то ещё.

Удачи!

15 нояб. 2019 г. 07:53:11
1

<?php echo strip_tags(get_the_excerpt()); ?>это сработало для меня

извините за это => Тело сообщения должно содержать не менее 30 символов; вы ввели 18.

16 февр. 2023 г. 06:45:00
Комментарии

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

cjbj cjbj
16 февр. 2023 г. 15:44:59
0

Если вы не хотите, чтобы при использовании the_excerpt() добавлялись теги <p>, вы можете использовать echo get_the_excerpt(), который удаляет теги <p>.

Если вы также хотите убедиться, что удалены переносы строк и пробелы, используйте echo wp_strip_all_tags( get_the_excerpt(), true );.

Использование get_the_excerpt может вызвать ошибку undefined offset -1, поэтому сначала проверьте с помощью has_excerpt().

20 окт. 2023 г. 19:31:22
0
-1

Ниже приведено решение с использованием плагина ACF:

<p>
    <?php
        $summary = get_field('introductory_text'); // Получаем вводный текст через ACF
        echo strip_tags(substr($summary, 0, 520)); // Обрезаем до 520 символов и удаляем HTML-теги
    ?>
    <a href="<?php the_permalink(); ?>"> ...читать далее</a>
</p>
27 нояб. 2017 г. 01:46:25