【備忘録】あるプラグインに使われている関数をひととおりまとめてみた
あるプラグインのバージョンアップに伴うバグ取り依頼があり、とても私の実力では及ばなさそうだったのですが、休日の丸1日フルに時間を空けてどこまでプラグインを理解できるか挑戦してみようと思い、今回の記事に至りました。
プラグインには関数が多く出てきます。
ひとつひとつ調べて理解していこうと思いますが、やはり忘れてしまうため、備忘録を取りながら、ついでにブログの記事にしてしまおうというわけで。。。
付け足し形式で更新していきますので宜しくお願いします。
define
定数定義。プログラム内のどこからでも呼び出し可能。
http://php.net/manual/ja/function.define.php
1 |
define(定数名 , 値 ); |
1 |
define( 'HOGE_VERSION', '2.1.x' ); |
1 2 3 4 5 |
if ( !defined('WP_CONTENT_URL') ) define( 'WP_CONTENT_URL', get_option('siteurl').'/wp-content' ); //もし、wp-contentのURLが定義されてなかったら、wp-contentのURLを定義する ※部分説明 get_option('siteurl') //非推奨・httpsを返さない。その場合はsite_url()を使う方が正しい。 |
definedは、指定した定数が存在するかどうかを調べる。(定数にのみ有効)
http://php.net/manual/ja/function.defined.php
1 2 3 4 5 |
if ( !defined('WP_CONTENT_DIR') ) define( 'WP_CONTENT_DIR', ABSPATH.'wp-content' ); //もし、wp-contentのディレクトリパスが定義されてなかったら、wp-contentのディレクトリパスを定義する ※部分説明 ABSPATH. //WordPressがインストールされたパス名 |
require_once
指定されたファイルの読込、評価。
※require、includeなどと少し勝手が違うので使い分ける
http://php.net/manual/ja/function.require-once.php
1 |
require_once 'hoge/hoge.php'; |
remove_action
特定のアクションフックに付加されている関数を除去。
https://wpdocs.osdn.jp/関数リファレンス/remove_action
1 2 |
remove_action('wp_head', 'hoge_link'); //アクションフックwp_headの、関数hoge_linkを削除する |
remove_filter
特定のフィルターフックに付加されている関数を除去。
https://wpdocs.osdn.jp/関数リファレンス/remove_filter
1 2 |
remove_filter('do_filter', 'do_hoge', 10); //フィルターフックdo_filterの、関数do_hogeを削除する。優先順位10 |
function ~ add_action
WordPress関数を定義して、アクションフィルターに~絡めて関数を実行。
https://wpdocs.osdn.jp/関数リファレンス/add_action
1 2 3 4 5 6 7 8 9 |
function email_friends( $post_ID ) { $friends = 'bob@example.org, susie@example.org'; wp_mail( $friends, "sally's blog updated", 'I just put something on my blog: http://blog.example.com' ); return $post_ID; } add_action( 'publish_post', 'email_friends' ); //ブログ投稿したとき(publish_post)にメールを送る(email_friends) |
ここまででよく出てくる「アクションフック」の一覧はこちら
register_activation_hook
プラグインが有効化されたときに実行される関数
https://wpdocs.osdn.jp/関数リファレンス/register_activation_hook
1 2 |
register_activation_hook(__FILE__,'hoge'); //プラグインを有効化したときに、関数hogeを実行する |
$wpdb->prefix
$wpdbは、WordPressデータベースにあるすべてのテーブルからデータを読み出すためのオブジェクト。
https://wpdocs.osdn.jp/関数リファレンス/wpdb_Class
プラグインでデータベーステーブルを作る。
直接SQLクエリを実行するより、
https://wpdocs.osdn.jp/プラグインでデータベーステーブルを作る
1 2 3 4 5 |
function jal_install() { global $wpdb; $table_name = $wpdb->prefix . "liveshoutbox"; } |
$wpdb->get_var
データベースから変数をひとつ返す。
https://wpdocs.osdn.jp/関数リファレンス/wpdb_Class
1 2 3 |
$results1 = $wpdb->get_var("show tables like '$table_name1'") ; //$table_name1に定義されたテーブル名を返す //※shou tables like はSQL文 |
is_multisite()
マルチサイトかどうかを判定する。
1 2 3 4 5 6 7 8 9 |
if ( is_multisite() ) { function multi_site_notices() { echo '<div class="error" style="text-align: center;"><p>マルチサイトでは利用できません。</p></div>'; } add_action('admin_notices', 'multi_site_notices'); } //もしマルチサイトの場合、echo内の文章を表示する。 //※アクションフックadmin_noticeは、管理画面に表示するということ |
参考:http://www.de2p.co.jp/tech/wordpress/admin-notices/
version_compare
バージョンを比較する。
参考:https://qiita.com/koemu/items/7ae6c53942d783c7e87f
1 2 |
if ( version_compare( HOGE_VERSION , '1.5.3', '<') ) { $permalink_err = true; } //定数HOGE_VERSION内のバージョンが1.5.3よりも古い場合、エラーを返す |
公開日:2019年3月17日
最終更新日:2019年3月18日