Pingback返回faultCode 0,无消息

时间:2013-10-24 作者:cweiske

我已经实现了自己的pingback客户端,并将pingback发送到不同的主机。

一些wordpress实例使用faultCode 属于0 和一个空的faultMessage.

原因是什么?

2 个回复
最合适的回答,由SO网友:Glen 整理而成

由于某些原因,附加到pingback错误的默认筛选器不会发送错误消息,除非错误代码为48。从…起wp-includes/commment.php:

function xmlrpc_pingback_error( $ixr_error ) {
    if ( $ixr_error->code === 48 )
        return $ixr_error;
    return new IXR_Error( 0, \'\' );
}

SO网友:cweiske

标准Wordpress源仅包含一个pingback错误调用,错误代码为0,消息为空,在wp-includes/class-wp-xmlrpc-server.php:

} elseif ( is_string($urltest[\'fragment\']) ) {
        // ...or a string #title, a little more complicated
        $title = preg_replace(\'/[^a-z0-9]/i\', \'.\', $urltest[\'fragment\']);
        $sql = $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_title RLIKE %s", like_escape( $title ) );
        if (! ($post_ID = $wpdb->get_var($sql)) ) {
                // returning unknown error \'0\' is better than die()ing
                return $this->pingback_error( 0, \'\' );
        }
        $way = \'from the fragment (title)\';
}
因此,当无法从URL确定帖子并且存在片段/锚点时,可能会发生错误(#foo) 在URL的末尾。该片段被解释为标题,并在posts表中搜索具有该标题的帖子。

不幸的是,这不是我的原因,因为我的URL中没有锚。

结束

相关推荐

pingbacks testing

关于新wp安装(3.0.4)中PBs的功能测试,我有几个问题:发布帖子时是立即发送pingback,还是将其安排为cron作业?如果后者正确,作业多久运行一次,我可以手动触发它吗?除了将“尝试通知文章中链接到的任何博客”设置为“开”,当然还有帖子内容中指向另一个博客的链接之外,还有其他关于发送PBs的术语吗?(例如,发件人的帖子应该是公开的而不是私有的吗?博客应该是非私有的吗?)出站链接应该放在帖子内容中,还是可以放在帖子的自定义字段中,以便发送PB?如果我的博客中没有发送或接收PBs,那么调试和检测问题