WordPress查找pingback服务器URI函数:discover_pingback_server_uri

AI大语言模型

WordPress函数discover_pingback_server_uri()用于根据给定的URL查找pingback服务器URI,从指定的URL中提取pingback服务器的地址。

discover_pingback_server_uri( string $url, string $deprecated = '' ): string|false

函数参数

$url

数据类型:string (必须)

指向ping的URL。

$deprecated

数据类型:string (可选)

2.7.0版本后弃用。

函数返回值

string | false

成功时返回包含URI的字符串,失败时返回false。

函数使用示例

查找给定URL的pingback服务器URI:

$url = 'https://example.com/sample-post';
$pingback_uri = discover_pingback_server_uri( $url );

if ( $pingback_uri ) {
    echo 'Pingback服务器URI: ' . $pingback_uri;
} else {
    echo '无法找到pingback服务器URI。';
}

在用户提交评论时自动发送pingback到相关链接:

function send_pingbacks_to_links( $comment_content, $comment_post_ID ) {
    // 使用正则表达式从评论内容中提取所有链接
    preg_match_all( '/<a[^>]*href=["\']([^"\']*)["\']/i', $comment_content, $matches );
    $links = $matches[1];
    
    // 获取文章的永久链接
    $permalink = get_permalink( $comment_post_ID );
    
    // 遍历每个评论中的链接并尝试发送 pingback
    foreach ( $links as $link ) {
        // 获取 pingback 服务器 URI
        $pingback_uri = discover_pingback_server_uri( $link );
        
        if ( $pingback_uri ) {
            // 发送 pingback 到服务器
            $result = pingback( $permalink, $comment_post_ID );
            if ( is_array( $result ) && ! empty( $result ) ) {
                foreach ( $result as $link => $status ) {
                    if ( $status ) {
                        error_log( '成功发送pingback到 ' . $link );
                    } else {
                        error_log( '发送pingback到 ' . $link . ' 失败' );
                    }
                }
            }
        }
    }
}

add_action( 'comment_post', 'send_pingbacks_to_links', 10, 2 );

扩展阅读

discover_pingback_server_uri()函数位于:wp-includes/comment.php

相关函数:

  • pingback()
AI大语言模型