2016-12-20 12 views
2

ここにWordPressの簡単なフィルタ機能があります。
私はこのコードの主な流れを理解しましたが、1つのことははっきりしません。 私は渡しません$contentパラメータはadd_filterですが、どこから来たのですか?アクションまたはフィルタのパラメータはどこから来ますか?

WordPressでデフォルトのパラメータがサポートされている場合、特定のフィルタまたはアクションイベントでどのようなパラメータが使用できるかを確認するにはどうすればよいですか?

<?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; 
} 
?> 

ありがとうございます。

答えて

1

the_contentフィルターフックはコードがwp-includes/post-template.phpコアファイルで定義されているthe_content()関数の内部に配置され(ライン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; 
} 

あなたがコードを見てみると、あなたがします$contentフィルタフックで使用されるパラメータが、その関数の変数として使用され、出力される前に渡されたデータを操作するために使用されることを理解してください。

各アクションおよびフィルタフックは、コアファイルまたはテンプレートのソースコードを変更せずに、デフォルトの動作を変更するための独自のパラメータをコアコードファイルまたはテンプレートに定義しています。

あなたの質問に答えることを願っています。

また、インターネットで検索すると、既存のすべてのフィルタフックとアクションフックのリストがそれぞれのパラメータで簡単に見つかります。

0

LoïcTheAztecが正しいと、私はちょうど$contentが自動的にフィルターが機能(the_content)にトリガーされたときに取り込まれます追加したいと思います。

apply_filtersを使用すると、追加の引数を追加してフックに渡すことができます。詳細はこちらhere

関連する問題