web-dev-qa-db-fra.com

Où est la logique qui définit l'extrait?

J'essaie d'apprendre comment apprendre sur WordPress en suivant son code source, etc.

Je suis vraiment perplexe à the_excerpt (). La documentation indique que the_excerpt utilise get_the_excerpt () et renvoie soit l'extrait (manuel), soit les 55 premiers caractères du contenu.

Je suis intéressé par la logique qui commence par rechercher l'extrait manuel, puis de décider s'il doit être extrait et extraire une sous-chaîne du contenu de la publication. Mais je ne le trouve pas.

Dans post-template.php, nous voyons les définitions the_excerpt () et get_the_excerpt ().

the_excerpt () ne fait rien de plus que faire écho à get_the_excerpt ():

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

get_the_excerpt () ne semble rien faire d’autre que récupérer la colonne post_excerpt de la table 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 }

Je ne vois pas où la logique pour récupérer $ post-> post_content réside. Est-ce dans les filtres? Je ne vois pas ces filtres définis nulle part, mais c'est peut-être parce que je ne sais tout simplement pas où chercher.

Un rapide coup d'œil sur Le site de recherche de code source d'Adam Brown ne semble pas non plus afficher de définition.

Quelqu'un peut-il m'aider à prendre le fil et à comprendre cela? Rappelez-vous, je suis plus intéressé par la façon de le comprendre que par la réponse réelle.

J'apprécie la contribution de chacun.

À M

1
Tom Auger

D'après ce que j'ai compris dans le fichier default-filters.php, un filtre est appliqué au filtre "get_the_filter". Le rappel concerne une méthode appelée 'wp_trim_execrpt'. Cela se trouve dans formatting.php. De là, vous pouvez voir la logique. J'espère que cela pourra aider.

2
Cristian