@import方式の子テーマ用functions.phpの作り方と注意点

function_php

子テーマ用のfunctions.phpを作る場合と、作成方法、注意点について

function.phpが必要になる時

子テーマを使ってのカスタマイズをしている場合、子テーマ用のfunctions.phpが必要になる場合があります。

以下はいつもWordPressでサイト作成する際にfunctions.phpにしばしば追記しているタグの使用目的です。

  1. 抜粋文の長さ、抜粋文最後のreadmoreの設定、readmoreへのリンクの設定
  2. サムネイルなどのメディアサイズのカスタム設定
  3. ショートコードを使えるようにする
  4. 固定ページでも抜粋が使えるようにする
  5. YouTubeをレスポンシブ対応にする

こういったことが可能になると、WordPressの使い勝手もぐんと広がり、いろいろなことができるようになります。

ただし、functions.phpの記入には注意が必要です。

functions.phpの作成方法と注意点

 

2015/May追記
下記は2014年までの作成方法です。2015年からの推奨設定でfunctions.phpを作成する場合は、プラグインOne-Click Child Themeでの作成で簡単に間違いなく作成できますので、下の作成方法のページを見てください。・・・子テーマの作成

下記の方法で作成して、推奨設定に変更したい場合は、このページの最後にあるタグをfunctions.phpの一番上に挿入し、style.cssから

@import url("../親テーマ名/style.css");

を削除して下さい。

 

さて、では本題。

子テーマ用のfunctions.phpは、先のheader.phpのように全てをコピーして変更するのではなく、追加したい関数をfunction.phpの記述との間に記述し、functions.phpファイルをサーバーにアップするだけでOKです。

他の子テーマのphpファイルは親テーマを上書きするのに対し、functions.phpは、いったん子テーマのfunctions.phpを読み込んでから親テーマのfunctions.phpを読み込むという形になっているためです。

親テーマのfunctions.phpと子テーマのfunctions.phpに同じ関数があると、エラーが起きますので、追加する必要な関数のみを記述するようにします。

また、作成する時に、function.phpの記述 の間の改行は大丈夫ですが、<> の外に空スペースや空改行があるとエラーが起きて、ログインするとダッシュボードが真っ白!なんてことに遭遇してしまいますので、その点にも注意してください。

親テーマ自体にのfunction.phpにこういった記述を加えるのはお勧めしませんが、親テーマや、オリジナルのテーマに関数を記述する場合は、いちばん最後の?>の前に入れると良いでしょう。

functions.phpの最初に挿入する2015年からの推奨設定タグ・・・一番最初に貼り付けて下さい。

&lt;?php add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style') ); } 

追記2015/May

JetpackのOGPの出力制限タグは必要なくなりました。

Jetpackは改善されてfunctions.phpでremoveをしなくても、既に他のOGPが出力されている場合は表示されない仕様になりました。

Jetpackのトラブルシューティングの記載から抜粋・・原文ページ

Since Facebook will give an error if there are duplicate Open Graph tags, Jetpack automatically deactivates it’s Open Graph tag generation when it detects one of these conflicting plugins.

重複したOGPタグがある場合、Facebookはエラーが発生しますので、Jetpackは、これらの競合するプラグインのどれかを検出したとき、自動的にそのオープングラフタグの生成を非活性化します。

例えば、超便利で多機能なプラグインのセット、Jetpack
ソーシャル関係のプラグインもいろいろ入ってくれていますが、そのためのOGPタグも自動で生成されてしまいます。Jetpack
たまにソースを見ると、複数のプラグインが生成するOGPタグがそのままになっていて、吐き出されるOGPタグの複数のセットでheaderが埋め尽くされているサイトがありますが、SEO的にはどうなのかな?と思います。
ソーシャルでパッシブを獲得するから、SEOは関係無い、OGP命!ということかもしれませんが・・^^;。
それはさておき、「いや、普通にSEO対策はしておきたいから、余分なOGPは表示させたくないよ」といった場合、その設定をfunctions.phpに書き込みます。

なんだかまとまりのない記事になってしまいましたが(^^ゞ今日はココまで。

お役に立ったら、シェアなどしていただけるとうれしいです。

Published:2014/01/29

Written by

@import方式の子テーマ用functions.phpの作り方と注意点」への1件のフィードバック

コメントを残す