Я чувствую, что здесь должно быть что-то довольно очевидное, но я не могу заставить WordPress сотрудничать.
Я генерирую теги OG Facebook с функцией. Все отлично работает, кроме отрывка.
Начиная с устаревания get_the_excerpt($post->ID)
, есть ли другой способ создать отрывок без необходимости создавать новый цикл? Это кажется чрезмерным для меня.
Моим первым инстинктом было использовать apply_filters()
:
$description = apply_filters('the_excerpt', get_post($post->ID)->post_content);
Это дает мне полный пост, в комплекте с HTML-форматированным контентом. Хорошо, должно быть неправильно. Поэтому я попробовал следующую логическую идею:
$description = apply_filters('get_the_excerpt', get_post($post->ID)->post_content);
Нет кости. Теперь нет HTML, но это все еще полный пост (который действительно сбивает с толку).
Хорошо, без проблем. Давайте пропустим все модные вещи и просто перейдем к сокращенной записи:
$description = wp_trim_excerpt(get_post($post->ID)->post_content);
Без изменений.
Итак, мой вопрос заключается в следующем: что, черт возьми, происходит? Здесь я что-то упускаю?
Я вошел в ядро WP, чтобы выяснить, как это the_excerpt()
работает, и оно похоже на мой вызов:
/**
* Display the post excerpt.
*
* @since 0.71
* @uses apply_filters() Calls 'the_excerpt' hook on post excerpt.
*/
function the_excerpt() {
echo apply_filters('the_excerpt', get_the_excerpt());
}
У меня есть несколько вопросов, основанных на моих выводах:
- Почему фильтр не применяется, как ожидалось?
- Есть ли способ получить отрывок вне цикла без создания нового цикла?
- Я сумасшедший?
Заранее спасибо за взгляд. Я здесь довольно тупой.
get_the_excerpt()
не считается устаревшим, просто дополнительный параметр, который был передан ему, больше не используется.