ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

WordPress, テーマのfunctions.phpに機能を実装するのは止めよう!

wordpress image
イラストダウンロードサイト【イラストAC】
の画像をもとに加工しています。

WordPressにはアクションやフィルター、いろんな関数が用意されており、かんたんにカスタマイズできます。ググればいくらでも情報が出てくるでしょう。

でも、それらの情報でよく出てくるのは『テーマのfunctions.phpにコードを追加する』というもの。

いや、これはやめようよという話です。

テーマ(theme)とは何か?

テーマとは元来、『行動や創作などの基調となる考え。主題。また、論文の題目、楽曲の主旋律など。』という意味です。

goo国語辞書より抜粋

何かの基本になるものですね?

システムやアプリケーションでは少し意味が違います。どちらかと言えば見た目を変えるもの。

たとえば、Windowsのデスクトップの待受画像のことをテーマと言うし、アプリケーションの基調色(フォント変更も含む)を変えるものもテーマと呼ばれます。

(プログラミング用のエディタではプラグインとしてテーマが配布されている。)

これらのテーマに独自の機能が入ってたりしたらどう思うでしょうか?

色味を変えるつもりだったのに大事な機能まで失ってしまっては大変です。テーマを変えるだけで機能が変わってしまうのも迷惑です。

WordPressのテーマも同じ

WordPressのテーマも考え方は同じです。テーマのfunctions.phpにカスタマイズ機能を書くのは止めようというのはこういうこと。

テーマを変えたら、SNSボタンが無くなった、カスタムの投稿タイプ、タクソノミー(カテゴリやタグのこと)が消えたなんて困るじゃないですか。

WordPressだけテーマの意味が違うのも混乱するのでダメだし、テーマはHTMLの構成やCSSでのスタイルの変更に専念すべきです。

機能はプラグインに入れるべし!

機能はテーマ専用のプラグインを作ってそこに実装しましょう。テーマが変わってもプラグインが有効化されていればカスタム機能はそのまま残ります。

ただし、テーマでカスタム機能を表示する変更は必要です。

『どうせ修正するんだったらテーマに入れといていいじゃん。』という声もあるでしょうが、もってる機能を表示する修正をするのと機能を移植するのでは作業量がちがいます。

コーディング規約では機能は入れないようになっている。

また、WordPressのテーマ作成の規約では『テーマに独自機能を入れてはいけない』となっています。

WordPress.orgのリポジトリに公開するときには審査があるんですが、こういうところは厳しく修正を求められるらしい。

(審査の申請を出したこと無いけど。)

WordPressには非公式で販売されている有料テーマや無料テーマが星の数ほどあるのですが、規約を無視しているものは多いです。

とくに、SEO対応を取り入れているものはガンガン機能が詰められている。

こういうところじゃないのかな? 『WordPressできます』より『Laravelできます』のほうがエンジニアの信頼が大きいのは。

(セキュリティとかもっと他にも理由はあるが。)

こういうこと言ってるボクもfuncsions.phpに追加しましょうというセリフを何度も言ってます。

一応、その内容を見つけたら修正していますが完全に消えていません。

もし見つけても、『言ってることと違う!』はご勘弁して下さい。

前の投稿
WordPress, カテゴリと投稿の階層(親子関係)をもてる投稿タイプを作る
WordPress5, 新エディタ(Gutenberg)にCSSを適用する方法
次の投稿

WordPressの本

post-cta-image

たくさんあるなかで、WordPressの基本が学べる、目的別に学べる本を選びました。

  • WordPressの基本。
  • Webサイト作成から運用まで全体的に学ぶ。
  • かんたんなカスタマイズを学ぶ。
  • 何も分からないところから学ぶ。
  • WordPressからPHPプログラミングを学ぶ。

の5冊です。どうしてもネット上で調べて勉強するのが苦手という人におすすめです。

この内容をモノにすればほかの本は必要ありません。あとは自分の力で、書籍を使わずにインターネット上にある情報だけで学んでいけます。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください