我在我的一个插件中使用了与以下类似的方法:
function wpse107488_urls_to_links( $string ) {
/* make sure there is an http:// on all URLs */
$string = preg_replace( "/([^\\w\\/])(www\\.[a-z0-9\\-]+\\.[a-z0-9\\-]+)/i", "$1http://$2", $string );
/* create links */
$string = preg_replace( "/([\\w]+:\\/\\/[\\w-?&;%#~=\\.\\/\\@]+[\\w\\/])/i", "<a target=\\"_blank\\" title=\\"" . __( \'Visit Site\', \'your-textdomain\' ) . "\\" href=\\"$1\\">$1</a>", $string);
return $string;
}
我不使用它来发布内容,但它应该在那里工作<为此,您必须使用
the_content
filter:
add_filter( \'the_content\', \'wpse107488_urls_to_links\' );
旁注:
这未经测试<正则表达式相当不错,但偶尔会在特殊情况下失败。仅通过格式识别URL,而避免误报并不是最简单的事情。