WordPress查找pingback服务器URI函数:discover_pingback_server_uri
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()