如何完全覆盖WP核心函数get_comments_number

时间:2015-02-12 18:19:58

标签: php wordpress filter hook

由于某些要求,我需要彻底改变get_comments_number();的行为 一个wp核心函数,它返回注释的数量!

我想要的是改变它的行为而不是阅读我希望它用以下函数覆盖的评论;

function get_review_numbers( $post_id = 0 ) {
$post = get_post( $post_id );

    if ( ! $post ) {
        $count = 0;
    } else {
        $count = get_rev_count($post->ID);
        $post_id = $post->ID;
    }

    /**
     * Filter the returned comment count for a post.
     *
     * @since 1.5.0
     *
     * @param int $count   Number of comments a post has.
     * @param int $post_id Post ID.
     */
    return apply_filters( 'get_review_numbers', $count, $post_id );
}

请指导我,我想写一些get_comments_number它应该执行上述功能而不是执行其核心功能。

1 个答案:

答案 0 :(得分:0)

你无法覆盖php中的函数。 (主题开发者测试函数是否存在然后创建函数以允许在该点之前运行时创建新函数)

get_comments_number

中有一个过滤器

return apply_filters( 'get_comments_number', $count, $post_id );

所以你可以用以下方法过滤结果:

add_filter('get_comments_number', 'your_custom_funct');

function your_custom_funct($count){
     $count++; // example you can add one to the count, etc
     return $count; //return it when finished!
}