WordPressはプラグインで機能を強化していくことができますが、それ以外にもテーマ内にあるfunctions.phpにコードを記入することで様々な機能を追加することができます。

これらの何度も使い回せるコードのことを“スニペット”と読んでおり、覚えておくことでいろんな場面で役に立たせることができます。

今回はそれらのスニペットの中から、特に定番のコードをご紹介したいと思います。

投稿のリビジョンを自動的に削除する

WordPressでは、記事を更新するたびに自動的に古いリビジョンが蓄積されるようになっていますが、それがサイトのパフォーマンスに影響を及ぼすことがあります。

functions.phpに簡単なコードを追加することで、リビジョンを自動的に削除するように指定することができます。

/* 投稿リビジョンを削除する  */<br />
$wpdb->query( "DELETE FROM $wpdb->posts WHERE post_type = 'revision'" );

01

ログインエラー時の横ブレを止める

WordPressの管理画面にログインするのにユーザー名とパスワードを入力しますが、入力をミスすると首を振ったように画面が揺れます。

普段はログインにしたままになっていることが多くあまり意識することはありませんが、頻繁にユーザーを変更する必要がある場合など、ちょっとしたミスで画面が揺れるのは煩わしく感じるかもしれません。

そんなときはこちらのコードを記入しておくことで、画面の揺れが起きないようにすることができます。

/* ログインエラー時に画面が横ブレするのを止める  */<br />
function wps_login_error() {<br />
        remove_action('login_head', 'wp_shake_js', 12);<br />
}<br />
add_action('login_head', 'wps_login_error');

02

wp_head()の出力するいらないコードをクリーンアップする

WordPressのheader.phpに含まれている。これが自動的に出力するコードの中には不要なものも含まれています。

.rsd_link……外部のアプリから情報を取得するプロトコルのリンクを出力
.wlwmanifest_link……『Windows Live Writer』を使っているときに使用
.wp_generator……WordPressのバージョンを表示
.start_post_rel_link……Linkタグを出力
.index_rel_link……Linkタグを出力
.adjacent_posts_rel_link……Linkタグを出力
.wp_shortlink_wp_head……デフォルトパーマリンクのURLを出力

/* プラグインなしでwp_head()をクリーンアップする   */<br />
remove_action( 'wp_head', 'rsd_link' );<br />
remove_action( 'wp_head', 'wlwmanifest_link' );<br />
remove_action( 'wp_head', 'wp_generator' );<br />
remove_action( 'wp_head', 'start_post_rel_link' );<br />
remove_action( 'wp_head', 'index_rel_link' );<br />
remove_action( 'wp_head', 'adjacent_posts_rel_link' );<br />
remove_action( 'wp_head', 'wp_shortlink_wp_head' );

Twitterのユーザー名に自動的にリンクを貼る

下記のコードを追加することで、記事中に「@ユーザー名」でTwitterのアカウント名を記入すると、自動的にTwitterアカウントへのリンクを貼ることができます。

/* Twitterのユーザー名にリンクを貼る   */<br />
function twtreplace($content) {<br />
	$twtreplace = preg_replace('/([^a-zA-Z0-9-_&])@([0-9a-zA-Z_]+)/',"$1<a href=¥"http://twitter.com/$2¥" target=¥"_blank¥" rel=¥"nofollow¥">@$2</a>",$content);<br />
	return $twtreplace;<br />
}<br />
add_filter('the_content', 'twtreplace');<br />
add_filter('comment_text', 'twtreplace');

03

いかがだったでしょうか?これらのスニペットは使用しているテーマによってはエラーになることもあります。

functions.phpに変更を加える前に、あらかじめバックアップをとってから作業するようにしましょう。