关闭trackback接收的同时开放pingback接收功能 » 荒野无灯weblog

Keep It Simple, Stupid.

荒野无灯weblog

关闭trackback接收的同时开放pingback接收功能

近期发现我博客基本没有直接post数据过来的spam,却发现好多spam是直接发送trackback给我(我wp开启trackback和pingback的),然后被akismet判为spam了。
实在不想理这些spam.
想关掉trackback接收功能,但是又不想关闭pingback接收功能,wp后台是一棒子打死,要么一起关,要么一起开。。。于是,有了这篇文章。

方法一:直接修改wp文件:
修改wp-trackback.php
在 trackback_response函数下面增加一行:

//禁用trackback 接收功能,切断spam来源
//By 荒野无灯 1:13 2011/9/29
trackback_response(1, 'Sorry, trackbacks are closed for this item.');

方法二:插件法
wp-includes/comment-template.php line 780-795 

/**
 * Whether the current post is open for pings.
 *
 * @since 1.5.0
 * @uses $post
 *
 * @param int $post_id An optional post ID to check instead of the current post.
 * @return bool True if pings are accepted
 */
function pings_open( $post_id = NULL ) {

    $_post = get_post($post_id);

    $open = ( 'open' == $_post->ping_status );
    return apply_filters( 'pings_open', $open, $post_id );
}

看到这里,哈哈,知道该怎么办了。
来个淫.荡的函数丢入主题functions.php :

//禁用trackback 接收功能,切断spam来源
//By 荒野无灯 1:13 2011/9/29
function disable_trackback_recv( $ping_status )
{
//is_trackback() 不工作。。。
    if( $GLOBALS['wp_the_query']->query_vars['tb']  )
    {
        return FALSE;
    }
    else
    {
        return $ping_status;
    }
}

add_filter('pings_open','disable_trackback_recv');

靠用trackback发送spam的spamer哭去吧。。。 :twisted:

Tagged in : trackback,antispam

All Comments (0)
Gravatar image
No Comments