regex
テキストの前にある場合、プレーンテキストをURLに変更するために使用しhttp://
ています。これは問題なく動作しますが、このリンクがinternal
(つまり、私の Web サイト名を含むリンク) である場合はリンクにしたくないので、外部リンクの場合にのみ発生させたいと考えています。
どうやってやるの?http の前にa を追加しようとしました!
が、うまくいきませんでした。誰か助けてくれませんか?これは私が使用しているものです:
function wpse107488_urls_to_links( $string ) {
$string = preg_replace( "/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i", "$1http://$2", $string );
$string = preg_replace( "/([\w]+:\/\/[\w-?&;%#~=\.\/\@]+[\w\/])/i", "<a target=\"_blank\" title=\"" . __( 'Visit Site', 'your-textdomain' ) . "\" href=\"$1\">$1</a>", $string);
return $string;
}
編集:内部リンクからもリンクを作成する別の機能を使用していますが(そうであるはずです)、これら2つの機能が互いにブロックしていると思います。そのため、すべての内部リンクにクラスを与えました。これらのクラスを使用してそれらを除外できますか?