WordPressでプラグインを作るとき、基本的にはfunctionだけでプラグインを作ることができる。
なのでネット情報でも、基本的にfunctionだけで『プラグインを作り方』としている。
そして
プラグインを追加する処理は、下記のように作ったfunctionの名前を登録する。
add_action('the_content', '【作ったfunctionの名前】');
のだけど
この作ったfunction処理の名前、被ったらエラーが起きる。
当然といえば当然なのだけど
流用しようというとき、イチイチfunction名を変えるのが、めんどくさいのだ。
管理画面とか流用当然な部分が特にね!
function名のかぶりを減らす!
最低限書き換えるだけで、済ませたいと思うのが、普通っしょ!
そんな同志は、是非classでプラグインを作ることをオススメします!
大概functionだけで作れてしまうから、あまり情報がないけども、実はclassでも作れる。
基本の型として、下記に記載。最低限、コレで大丈夫。
class WordPress_plugin_sample { static $package = "Wordpress-plugin-sample"; static $version = "1.0.0"; static $title = "Wordpress plugin sample"; // 呼び出し対象 public static function register_hooks() { // wordpressに処理を追加 add_action('admin_menu', array(__CLASS__, 'register_admin_hooks')); add_action('the_content', array(__CLASS__, 'settings_page')); } // 管理画面のメニューを追加 public static function register_admin_hooks() { add_options_page( __("Configure ".self::$title, self::$package), // page title. __(self::$title, self::$package), // menu title. 'manage_options', // priv/capability self::$package.'-settings', // slug array(__CLASS__, 'settings_page')); } // 追加される管理ページ public static function settings_page($text) { ?> <link rel='stylesheet' href='<?php echo plugins_url( 'css.css', __FILE__ ); ?>' type='text/css' media='all' /> <script type="text/javascript" src='<?php echo plugins_url( 'js.js', __FILE__ ); ?>'></script> <form method="post" action="" id="form" name="form0"> <h2><?php echo self::$title; ?></h2> などなど管理画面に追加したい項目 </form> <?php } // 追加される処理 public static function add_action($text){ return $text.'編集後'; } } Wordpress_plugin_sample::register_hooks();
class名部分さえ変えてしまえば、function名は同じで問題ない。
例えば下記の部分は、そのまま使えばOK。
add_action('admin_menu', array(__CLASS__, 'register_admin_hooks'));
勝手に呼び出し元class名を指定してくれるからね。
管理メニューの種類
『add_options_page』という部分、書き換えれば管理画面のメニューの位置を変更出来る。
- add_dashboard_page():ダッシュボード
- add_posts_page():投稿
- add_media_page():メディア
- add_pages_page():固定ページ
- add_comments_page():コメント
- add_theme_page():外観(テーマ)
- add_plugins_page():プラグイン
- add_users_page():ユーザ
- add_management_page():ツール
- add_options_page():設定
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function);
のようにadd_submenu_pageで追加する方法もあるので、好きな方を使えばよろしいかと。
プラグインベースをGITに用意してみました!
面倒くささを減らすために、WordPressプラグインベースをGithubに用意しておきました!
コチラからなんやかんやして、なんやかんや使ってみてください。
qooga-work/base_wordpress_plug-in
コメント