tomauger
  • 0
Эксперт

Где логика, определяющая отрывок?

  • 0

Я пытаюсь узнать, КАК узнать о WordPress, следуя его исходному коду и т. Д.

Я действительно озадачен the_excerpt(). В документации указано, что the_excerpt использует get_the_excerpt() и возвращает либо (вручную) выдержку, либо использует первые 55 символов the_content.

Меня интересует логика, которая сначала ищет выдержку из руководства, а затем решает, нужно ли ей входить и извлекать подстроку из содержимого сообщения. Но я не могу найти его.

В post-template.php мы видим, что определены функции the_excerpt() и get_the_excerpt().

the_excerpt() не делает ничего, кроме вывода get_the_excerpt():

249 function the_excerpt() {
250         echo apply_filters('the_excerpt', get_the_excerpt());
251 }

get_the_excerpt(), похоже, не делает ничего, кроме извлечения столбца post_excerpt из таблицы wp_post:

261 function get_the_excerpt( $deprecated = '' ) {
262         if ( !empty( $deprecated ) )
263                 _deprecated_argument( __FUNCTION__, '2.3' );
264 
265         global $post;
266         $output = $post->post_excerpt;
267         if ( post_password_required($post) ) {
268                 $output = __('There is no excerpt because this is a protected post.');
269                 return $output;
270         }
271 
272         return apply_filters('get_the_excerpt', $output);
273 }

Я не понимаю, где находится логика для захвата $post->post_content. Это в фильтрах? Я нигде не вижу эти фильтры, но это может быть потому, что я просто не знаю, где искать.

Беглый взгляд на сайт поиска исходного кода Адама Брауна, похоже, тоже не дает никаких определений.

Может ли кто-нибудь помочь мне поднять нить и понять это? Помните, меня больше интересует, как это понять, чем сам ответ.

Я ценю вклад каждого.

Том

Share
  1. Насколько я понимаю, в файле default-filters.php фильтр применяется к фильтру get_the_filter. Обратный вызов предназначен для метода под названием «wp_trim_execrpt». Это находится в formatting.php. Отсюда видно логику. Надеюсь, это поможет.

    • 0

Оставить ответ

You must login to add an answer.