WordPressのfunctions.phpを整理する

1420828181_Wordpress

WordPressでテーマを幾つも作っていたら、functions.phpがグチャグチャになってきました。

あー、整理しないとダメだなーと思いながらずーっと残っていたタスク・・

まずは、どうやって整理したらいいかを考えていたんですが、プラグイン化すると使いやすいという記事を見つけました。

WordPress:プラグインの作成方法とスニペットをプラグイン化して管理する方法

 

プラグインにするとしても、とりあえずはグチャグチャした関数たちを項目別に分類しなくちゃということで、今日は苦手なドキュメント作り・・・

で、ドキュメントにまとめてみたらスッキリして終わった気になったんですが、これをすぐに使える状態にしなきゃいけないんですよね。

プラグイン化する方法をやってみようかと思ったけど気が進まず結局、項目別に分類した関数をそれぞれphpファイルにまとめて、functions.phpでインクルードすることにしました。

 

まず、関数を項目別に分類し、項目数分のPHPファイルを作成しました。例えば、わたしは

  1. admin-setting.php — 管理画面カスタマイズ用関数
  2. post-setting.php — 投稿、ページ関連カスタマイズ用関数
  3. sub-contents.php — サイドバー、フッター、ウィジェットカスタマイズ用関数
  4. wp-setting.php — WordPressの初期設定(カスタムメニューやカスタムヘッダー、サムネイル設定などなど)

 

4つのファイルに分けてもwp-setting.phpなんかはボリュームがあるので、全部のファイルのヘッダーに詳細な目次をつけることにしました。

[php]

/*
* Author: ko.a labo
* URL: http://koa-labo.com
* サイドバー/フッター/ウィジェット カスタマイズ関数ファイル

1. koa_wpsearch
–検索フォーム
2. koa_register_sidebars
–サイドバー&ウィジェット設定
3. description_in_nav_menu
–メインナビゲーションをサブタイトルつきにする
4. koa_wpsearch_for_widget
–検索フォームウィジェット設定
*/

[/block]

そして、functions.phpではファイルをrequire_onceでインクルードします。どんな関数が含まれているか分かるようにしておくと、あとで探しやすいです。

[block]

/*
* Author: ko.a labo
* URL: http://koa-labo.com
* テンプレートで使用するインクルードファイル

1. library/koa-WPsetting.php
–自動で付加されるヘッダー情報から必要の無い項目を削除する
–カスタムヘッダー
–RSSからWPバージョン表示を削除
–remove WP version from scripts
–スクリプト&スタイルの読み込み
–サムネイル 設定
–カスタム背景
–RSSサポート
–ポストフォーマット設定
–カスタムメニュー設定
–ナビゲーションメニュー設定
–最近の投稿記事に関する設定
–ページナビゲーション設定
–コメント表示設定
–自動付加される

タグの削除
–自動付加される […] の削除
–authorリンクを取得
–body_class設定
–ページネーションのPreviousにClassを追加
–ページネーションのNextにClassを追加
–最近のコメントのWordPressスタイルを削除
–ヘッダーからコメントスタイルを削除
–ギャラリースタイルのスタイルを削除
*/
require_once(‘library/koa-WPsetting.php’);
/*
2. library/post-setting.php
–投稿にタクソノミーを追加
–カスタム投稿’WORK’の設定
–カスタムポストのナビメニュークラスにcurrent_page_parentをつけない設定
–投稿記事で使うショートコード
–本文から指定した文字数を取得
–投稿記事内に挿入する画像URL
*/
require_once(‘library/post-setting.php’);
/*
3. library/admin-setting.php
–デフォルトで表示されているウィジェットを非表示に
–RSSダッシュボードウィジェット
–ログインページ用cssファイルの読み込み
–ロゴリンクをサイトURLに変更
–ログインタイトルをサイト名に変更
–管理画面フッターテキストのカスタマイズ
*/
require_once(‘library/admin.php’);
/*
4. library/translation/translation.php
– 多言語対応
*/
require_once(‘library/translation/translation.php’);
/*
5. library/subcontents-setting.php
–検索フォーム
–サイドバー&ウィジェット設定
–メインナビゲーションをサブタイトルつきにする
–検索フォームウィジェット設定
*/
require(‘library/subcontents-setting.php’ );

[/php]

元ファイルを保存しておいて、新規テーマを作るときはコピペして使い、必要ない関数はコメントアウトや削除します。

プラグイン化して使うとしても、必要ないファイルは削除しなくてはいけないので、同じような整理方法かなと思います。

これでしばらく使ってみて、また煩雑になってしまうようだったら別の方法を編み出してみます。

 

今日はそんな感じで目がほそーくなりながらの作業だったけど、後回しにしていたタスクが片付いたのですっきりです。

早めにビールでも飲もうかな。