2016-12-20 5 views
2

Voici une fonction de filtrage simple dans WordPress.
J'ai compris le cours principal de ce code, mais une chose n'est pas claire. Je n'ai pas passé $content paramètre dans add_filter mais d'où vient-il?D'où proviennent les paramètres d'action ou de filtre?

Si WordPress supporte le paramètre par défaut, c'est correct alors comment savoir quels paramètres sont possibles pour un événement spécifique de filtre ou d'action?

<?php 
    add_filter('the_content', 'prowp_profanity_filter'); 
    function prowp_profanity_filter($content) { 
    $profanities = array('sissy', 'dummy'); 
    $content = str_ireplace($profanities, '[censored]', $content); 
    return $content; 
} 
?> 

Merci.

Répondre

1

the_content crochet de filtre est situé à l'intérieur de la fonction the_content() dont le code est défini dans wp-includes/post-template.php fichier de base de (en commençant à la ligne 222):

/** 
* Display the post content. 
* 
* @since 0.71 
* 
* @param string $more_link_text Optional. Content for when there is more text. 
* @param bool $strip_teaser Optional. Strip teaser content before the more text. Default is false. 
*/ 
function the_content($more_link_text = null, $strip_teaser = false) { 
    $content = get_the_content($more_link_text, $strip_teaser); 
    /** 
    * Filters the post content. 
    * 
    * @since 0.71 
    * 
    * @param string $content Content of the current post. 
    */ 
    $content = apply_filters('the_content', $content); 
    $content = str_replace(']]>', ']]&gt;', $content); 
    echo $content; 
} 

Si vous avez un oeil pour le code que vous comprendre que $content le paramètre utilisé dans le crochet de filtre est également utilisé comme variable dans cette fonction pour manipuler les données qui y sont passées, avant de les sortir. Chaque action et tous les hooks de filtre ont leur propre paramètre défini dans les fichiers ou modèles de code principal, car ils permettent de modifier les comportements par défaut, sans modifier le code source de ces fichiers ou modèles.

J'espère que cela répond à votre question.

En effectuant une recherche sur internet, vous trouverez facilement une liste de tous les crochets de filtres existants et des crochets d'action avec leurs paramètres respectifs.

0

LoïcTheAztec est juste, je voudrais juste ajouter le $content est automatiquement renseigné lorsque le filtre est déclenché dans la fonction (the_content). Apply_filters permet d'ajouter des arguments supplémentaires et de les passer aux hooks. Vous trouverez plus de détails here