web-dev-qa-db-fra.com

Quels filtres sont appliqués à la fonction the_content?

Comment WordPress convertit-il les données brutes de la base de données en un format lisible dans la fonction the_content?

J'ai remarqué qu'il applique le filtre the_content, mais que fait le filtre the_content?

6
Mohamed Said

les filtres par défaut sont définis dans /wp-includes/default-filters.php;

pour 'the_content', cela provient de la ligne 135:

add_filter( 'the_content', 'wptexturize'        );
add_filter( 'the_content', 'convert_smilies'    );
add_filter( 'the_content', 'convert_chars'      );
add_filter( 'the_content', 'wpautop'            );
add_filter( 'the_content', 'shortcode_unautop'  );
add_filter( 'the_content', 'prepend_attachment' );

pour suivre les fonctions individuelles, vous pouvez utiliser http://phpxref.ftwr.co.uk/wordpress/nav.html?_functions/index.html puis suivre les liens ...

Modifier

Omission manquante (wp-includes/default-filters.php, ligne 102):

// Format WordPress
foreach ( array( 'the_content', 'the_title' ) as $filter )
    add_filter( $filter, 'capital_P_dangit', 11 );
7
Michael

Tous les filtres sont stockés dans la variable globale $wp_filter. Vous pouvez inspecter cette variable pour voir quelles fonctions sont liées à un certain filtre.

global $wp_filter;
print_r($wp_filter['the_content']);

Pour comprendre exactement le tableau généré, il est très utile de savoir comment la variable $wp_filter est construite. Cette ligne provient de la source de la fonction add_filter():

$wp_filter[$tag][$priority][$idx] = array('function' => $function_to_add, 'accepted_args' => $accepted_args);
2
Geert

mais que fait le filtre the_content?

Content_filter vous permet de retourner du contenu personnalisé avant ou après le contenu.

Voici deux exemples pratiques très simples d'utilisation du filtre the_content dans une fonction personnalisée:

Cet exemple renvoie un contenu personnalisé avant le contenu

 add_filter( 'the_content', 'return_before_content' ); 

 function return_before_content( $content ) { 

    if ( is_singular('post')) {

        $before_content = '<p>Text Returned Before the_content</p>';

        $content = $before_content . $content;

        }

    return $content;
}

Cet exemple renvoie un contenu personnalisé après le contenu

 add_filter( 'the_content', 'return_after_content' ); 

 function return_after_content( $content ) { 

    if ( is_singular('post')) {

         $after_content = '<p>Text Returned After the_content</p>';

        $content = $content . $after_content;

        }

    return $content;
}
0
Brad Dalton