动作或过滤器参数从何而来?

Where does action or filter parameters come from?

这是 WordPress 中的简单过滤功能。
这段代码的主要过程我都看懂了,但是有一点不太清楚。 我没有在 add_filter 函数中传递 $content 参数,但它是从哪里来的?

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

谢谢。

the_content 过滤器挂钩位于 the_content() 函数内,代码定义在 wp-includes/post-template.php核心文件(从第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 参数也用作该函数中的变量来操作数据在输出之前通过它。

每个操作和过滤器挂钩在核心代码文件或模板中都有自己的参数定义,因为它们是更改默认行为的一种方式,无需更改该核心文件或模板的源代码。

我希望这能回答您的问题。

Also searching on internet, you will easily find a list of all existing filter hooks and action hooks with their respective parameters.

LoïcTheAztec 是对的,我只是想添加 $content 在函数中触发过滤器时自动填充 (the_content)。

apply_filters 允许添加额外的参数并将其传递给挂钩。您会找到更多详细信息 here