【WordPress】functions.phpに最低限、これだけは入れておきたい!!

  • CMS

functions.phpに何を書くか?

functions.phpは本当に色々なことができるので、
WordPressでテーマを作るときの肝と言っても過言ではありません。

出来ることが多い反面、何を書けば良いか分からなくなってしまいますよね。

今回、偉そうなタイトルが付きましたが、
トライムでいつも使っているfunctions.phpのベースをご紹介します。

functions.php

<?php

  // generatorを非表示にする
  remove_action('wp_head', 'wp_generator');

  // EditURIを非表示にする
  remove_action('wp_head', 'rsd_link');

  // wlwmanifestを非表示にする
  remove_action('wp_head', 'wlwmanifest_link');

  //タイトルタグ出力
  add_theme_support( 'title-tag' );

  //emoji無効化
  remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
  remove_action( 'wp_print_styles', 'print_emoji_styles', 10 );

  //body_classにスラッグを追加
  function pagename_class($classes = '') {
    if (is_page()) {
      $page = get_post(get_the_ID());
      $classes[] = 'page-' . $page->post_name;
      if ($page->post_parent) {
        $classes[] = 'page-' . get_page_uri($page->post_parent) . '-child';
      }
    }
    return $classes;
  }
  add_filter('body_class', 'pagename_class');

  //管理画面以外で使用する
  if (!is_admin()) {

    //CSSとJavaScriptの読み込み
    function my_scripts() {

    //テンプレートディレクトリのパス
    $dir = get_template_directory_uri();

    //CSS
    wp_enqueue_style( 'style', get_stylesheet_uri(),array(),'1.0.0','all');
    wp_enqueue_style( 'css-name', $dir . '/css/css-name.css','1.0.0','all');

    //JS
    wp_enqueue_script( 'plugins', $dir . '/js/plugins.js', array('jquery'), '1.0.0', true );
    wp_enqueue_script( 'common', $dir . '/js/common.js', array('jquery'), '1.0.0', true );
    wp_enqueue_script( 'pages', $dir . '/js/pages.js', array('jquery'), '1.0.0', true );
    }
    add_action( 'wp_enqueue_scripts', 'my_scripts' );

  }

  //ログイン画面のデザイン変更
  function admin_login_css() {
    echo '';
  }
  add_action('login_head', 'admin_login_css');

  function custom_login_logo_url() {
    return get_bloginfo( 'url' );
  }
  add_filter( 'login_headerurl', 'custom_login_logo_url' );

  //サムネイル
  add_image_size( 'photo_list', 240, 160, true );

解説

4行目 generatorを非表示にする。
wp_generator はmetaタグでwordpressのバージョンを表示するものです。
7行目 EditURIを非表示にする。
ブログ投稿ツールを使っている時には必要ですのでご注意を。
9行目 wlwmanifestを非表示にする。
Windows Live Writerを使ってブログ投稿をする時には使用します。
13行目 <title>タグを出力します。
16〜17行目 絵文字を利用しないので、無効化しています。
20〜30行目 body_classにページのスラッグを追加します。
33〜52行目 CSSやJSを読み込みます。
54〜63行目 ログイン画面のデザイン変更のため、
/css/admin_login.css を読み込んでいます。
66行目 サムネイルで任意のサイズを指定して下記のように呼び出します。
<?php the_post_thumbnail( 'photo_list' );?>

まとめ

とりあえず、毎回使い回しているのはこのくらいです。
あとはその都度、必要なものを書き足しています。

カスタム投稿タイプやカスタムタクソノミーの追加も、
functions.phpに書けば出来てしまいます。

プラグインに頼らないように制作すると、functions.phpはながーくになっていきます。

コアファイルをいじらなくても、
ある程度のことが出来てしまうWordPressは素晴らしいですね!

Writer

KO

誕生日に会社のみんなから『世界文学全集』をプレゼントしてもらった読書好きフロントエンド・エンジニアです。WordPressとMovableTypeが得意ですが、本当の特技は薪割りです。

Contact

ご提案依頼、ご相談、お見積もりなど
お気軽にお問合わせください。

03-6403-3259

平日 10:00~19:00

「Web制作について」とお伝え頂ければ
担当者に取次させていただきます。

Mailform

contact@trym.jp
でも受け付けております。