WordPressで記事内に書かれたTwitterアカウント名を、@Anywhereを使わずに自動リンク化する

Ads

@Anywhereを使わずにWordPress
で書かれた記事内のTwitterの
アカウントを自動リンク化する、
という方法。正規表現で置換
します。無駄なjsも読み込まな
いのでこちらの方が良いですね。

@Anywhereは楽ですけど、Twitterのアカウントをリンク化するためだけに使っているなら読み込むJSがロード時間を妨げる事の方がデメリットになるかもしれません。なので、@Anywhereをアカウントのリンク化のみに使っているなら、使わずに自動リンク化出来たほうがエコですね。

コード

functions.phpに以下を追記します。

function add_twitter_link($content) {
    $pattern= '/(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9_]+)/i';
    $replace= '@<a href="http://www.twitter.com/$1">$1</a>';
    $content= preg_replace($pattern, $replace, $content);
    return $content;
}
 
add_filter( "the_content", "add_twitter_link" );

正規表現を使って@で始まる文字列を探してTwitterのアカウントへのリンクに置換します。@の前にも正規表現を使っているのは、メールアドレスだった場合の誤リンク化を防ぐためのものです。

実装テスト


うまくリンク化出来ました。メールアドレスはリンク化されません。

以下を参考にしました。

Automatically Link Twitter Handles With a Content Filter