WordPressのfunctions.phpにとりあえずコピペしておくべきコード

WordPressのfunctions.phpにとりあえずコピペしておくべきコード

WordPressのfunctions.phpにとりあえずコピペしておくべきコードを紹介します。

WordPressのテーマを作る際には、WPの初期化がてら、とりあえずfuncions.phpにコピペをしてから開発を始めると良いと思います。

PHPのメモリー上限の書き換え

WPのメモリー制限がデフォルトでは、たったの40MBしかないので上書きしている方が無難です。

メモリーが足りなくなるとエラーを吐いて処理が終了してしまいます。

/**
 * PHPのメモリー上限の書き換え
 */
ini_set('memory_limit', '256M');

wp_headの不要タグの削除

セキュリティやパフォーマンスの観点から削除しておくべきタグを削除するコードです。

/**
 * wp_head 不要タグの削除
 */
remove_action( 'wp_head', 'wp_generator' ); //WordPressのバージョン情報
remove_action( 'wp_head', 'rsd_link' ); //外部アプリケーションから情報を取得するタグ
remove_action( 'wp_head', 'wlwmanifest_link' ); //Windows Live Writer用のタグ
remove_action( 'wp_head', 'index_rel_link' ); //現在の文書に対する「索引」であることを示すタグ
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 ); //「?p=投稿ID」形式のデフォルトパーマリンクタグ

//「link rel=next」等のタグ
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );

//フィード関連のタグ
remove_action( 'wp_head', 'feed_links', 2);
remove_action( 'wp_head', 'feed_links_extra', 3);

//絵文字関連タグ
remove_action( 'wp_head', 'print_emoji_detection_script', 7);
remove_action( 'admin_print_scripts', 'print_emoji_detection_script');
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles');
add_filter( 'emoji_svg_url', '__return_false' );

WPの機能の追加

tiltleタグの出力や投稿のサムネイルなどの機能はデフォルトではオフになっているので設定する必要があります。

/**
 * add_theme_support
 */
add_action( 'after_setup_theme', function(){
  add_theme_support( 'title-tag' ); // tiltleタグの追加
  add_theme_support( 'post-thumbnails' ); //サムネイル機能の追加
  add_theme_support('menus'); // カスタムメニューの追加
  add_theme_support('widgets'); // ウィジェットの追加
});

session_start()

session_start()は、PHPが標準出力する前に実行する必要があります。

header.phpに記述しても良いですが、汎用を考えるとfunction.phpnに書いておいた方が良いでしょう。

/**
 * session_start
 */
add_action('init', function(){
  session_start();
});

まとめ

コピペ用に上記のコードをまとめました。

使用する場合は、このコードを使用しているWPのテーマにfunctions.phpにコピペして使用してください。

/**
 * PHPのメモリー上限の書き換え
 */
ini_set('memory_limit', '256M');

/**
 * wp_head 不要タグの削除
 */
remove_action( 'wp_head', 'wp_generator' ); //WordPressのバージョン情報
remove_action( 'wp_head', 'rsd_link' ); //外部アプリケーションから情報を取得するタグ
remove_action( 'wp_head', 'wlwmanifest_link' ); //Windows Live Writer用のタグ
remove_action( 'wp_head', 'index_rel_link' ); //現在の文書に対する「索引」であることを示すタグ
remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 ); //「?p=投稿ID」形式のデフォルトパーマリンクタグ

//「link rel=next」等のタグ
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );

//フィード関連のタグ
remove_action( 'wp_head', 'feed_links', 2);
remove_action( 'wp_head', 'feed_links_extra', 3);

//絵文字関連タグ
remove_action( 'wp_head', 'print_emoji_detection_script', 7);
remove_action( 'admin_print_scripts', 'print_emoji_detection_script');
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles');
add_filter( 'emoji_svg_url', '__return_false' );

/**
 * add_theme_support
 */
add_action( 'after_setup_theme', function(){
  add_theme_support( 'title-tag' ); // tiltleタグの追加
  add_theme_support( 'post-thumbnails' ); //サムネイル機能の追加
  add_theme_support('menus'); // カスタムメニュー
  add_theme_support('widgets'); // ウィジェットの追加
});

/**
 * session_start
 */
add_action('init', function(){
  session_start();
});