Я пытаюсь узнать, КАК узнать о 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. Это в фильтрах? Я нигде не вижу эти фильтры, но это может быть потому, что я просто не знаю, где искать.
Беглый взгляд на сайт поиска исходного кода Адама Брауна, похоже, тоже не дает никаких определений.
Может ли кто-нибудь помочь мне поднять нить и понять это? Помните, меня больше интересует, как это понять, чем сам ответ.
Я ценю вклад каждого.
Том
Насколько я понимаю, в файле default-filters.php фильтр применяется к фильтру get_the_filter. Обратный вызов предназначен для метода под названием «wp_trim_execrpt». Это находится в formatting.php. Отсюда видно логику. Надеюсь, это поможет.
Эй, Феникс, я думаю, ты что-то задумал. Для моего обучения, не могли бы вы сказать мне: что натолкнуло вас на идею заглянуть в default-filters.php?
Я использую netbeans, поэтому я могу быстро перейти к функции в wordpress (вместо того, чтобы смотреть кодекс). Я проследил это от apply_filters(‘get_the_excerpt’). Если есть применение, то должен быть и add_filter(‘get_the_excerpt’, ‘method_here’). Так что я просто искал add_filter(‘get_the_excerpt’ и бац, вот оно 🙂
Ты да человек. Мне придется изучить netbeans — я ничего об этом не знаю. Оцените понимание!
@tom Добро пожаловать, приятель, для этого и создан этот сайт 🙂