【WordPress】functions.phpの編集はたったコレだけ ~最低限やるべき5つのポイント~

refresh calendar 2019-12-05

はい、今日はWordPressを始めるための手順と気をつけるべきポイントまとめの続きです。

今回は子テーマのfunctions.phpというファイルを編集していきます。 WordPressにおいて何か機能を追加したいときには、このファイルを編集することが多いです。

今回は紹介しませんが、ショートコードを自作する場合もこのfunctions.phpを使いますよ。

WordPressでサイトを作成するにあたっての、大まかな流れをまとめてみました。 このページではあくまで大まかな流れについて触れ、必要ある場合には詳細に関するページのリンクを貼…
home kanau.page

WordPressのバージョン情報は非公開にする

WordPressのバージョンがHTMLに表記されていると、ハッキングする取っ掛かりを与えてしまいます。 消しておきましょう。

remove_action('wp_head','wp_generator');

不必要なウィジェットは停止する

使わないウィジェットでもロードは生じます。 次のコードを追加することでウィジェット画面上をスッキリさせるだけでなく、ロード処理の対象からも削除できます。

注意点としては、使うウィジェットの行だけを削除した上で使ってください。

function remove_widgets() {
	unregister_widget("WP_Widget_Pages"); //固定ページ
	unregister_widget("WP_Widget_Calendar"); //カレンダー
	unregister_widget("WP_Widget_Archives"); //アーカイブ
	unregister_widget("WP_Widget_Meta"); //メタ情報
	unregister_widget("WP_Widget_Search"); //検索
	unregister_widget("WP_Widget_Text"); //テキスト
	unregister_widget("WP_Widget_Categories"); //カテゴリー
	unregister_widget("WP_Widget_Recent_Posts"); //最近の投稿
	unregister_widget("WP_Widget_Recent_Comments"); //最近のコメント
	unregister_widget("WP_Widget_RSS"); //RSS
	unregister_widget("WP_Widget_Tag_Cloud"); //タグクラウド
	unregister_widget("WP_Nav_Menu_Widget"); //ナビゲーションメニュー
	unregister_widget("WP_Nav_Menu_Custom_HTML"); //カスタムHTML
	unregister_widget("WP_Widget_Media_Audio"); //音声
	unregister_widget("WP_Widget_Media_Image"); //画像
	unregister_widget("WP_Widget_Media_Gallery"); //ギャラリー
	unregister_widget("WP_Widget_Media_Video"); //動画
}
add_action("widgets_init", "remove_widgets", 10);

jQueryに対しての高速化プラン

jQueryをGoogleのCDNから読み込ませる

WordPressをインストールした直後の状態では、WordPressに付属のjQueryを使用するようになっています。 GoogleCDNという、要はGoogleのクラウド上から取得するjQueryは、利用者が多いのでその分だけユーザーのブラウザにキャッシュされている確率が高く、結果的にページの読み込みが速くなります。 どちらも中身は同じなので、特別な理由がなければGoogleCDNを利用しましょう。

この例ではver1.12.4となっていますが、この数値は好きな値にかえてもらって結構です。 自分のWordPressサイトのヘッダーを見て、使っているjQueryのバージョンを確認しましょう。

function add_jquery() {
  if( !is_admin() ){
   //remove WP-Default-jQuery
   wp_deregister_script('jquery');

    // add Google-CDN-jQuery
	wp_enqueue_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js');
  }
}
add_action('wp_enqueue_scripts', 'add_jquery');

jQueryの読み込みを遅らせる(defer)

jQueryは大きなファイルなので、そもそもの読み込みに時間が掛かってしまいます。 deferをつけることで読み込みが非同期に行われるようになり、これも結果として速度アップにつながります。

注意事項として、このコードを追加することでプラグインによっては正常に動作しなくなるケースもあります。 このコードを追加した際には、サイトが問題なく動いているかどうかしっかり確認しましょう。

function replace_script_tag ( $tag ) {
	if(strpos($tag, 'jquery') !== false){
    	return str_replace( "type='text/javascript'", 'defer', $tag );
    }
    return $tag;
}
add_filter( 'script_loader_tag', 'replace_script_tag' );

Googleアナリティクスのコードを挿入する

Googleアナリティクスのコードを挿入するためだけにプラグインを使う人が多いです。 でもこれはとっても簡単なことなので、是非ともfunctions.phpで設定してください。

下のコードのUA-XXXXXX-Xの部分を自分のトラッキングIDに置き換えるか、あるいはグローバルサイトタグを丸々コピーして置き換えて使ってください。

トラッキングIDもしくはグローバルサイトタグについては、Googleアナリティクスの管理 → プロパティ内のトラッキング情報 → トラッキングコードにて確認できます。

なお、このコードではWordPressにログインしているブラウザからはアクセスがカウントされないようになっています。 ちゃんとできているか確認する場合は、別のブラウザかスマホからアクセスして、アナリティクスのリアルタイム情報に変化があるか見てみてください。

function load_ga_code() {
	if (!is_user_logged_in()) {?>

		//↓グローバルサイトタグを貼り付ける
		<!-- Global site tag (gtag.js) - Google Analytics -->
		<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXX-X"></script>
		<script>
		window.dataLayer = window.dataLayer || [];
		function gtag(){dataLayer.push(arguments);}
		gtag('js', new Date());

		gtag('config', 'UA-XXXXXX-X');
		</script>


		< ?php}
}
add_action('wp_head', 'load_ga_code');

以上、今日はこれにて!

Some images are made by Freepik's icons from www.flaticon.com