先日、Genesisフレームワークのフックをビジュアルでわかりやくす表示する「Genesis Visual Hook Guide」プラグインをご紹介しました。
このプラグインを有効化していると、URLに「?gvhg_hooks=show」をつければ誰でもビジュアル表示できてしまうため、プラグインからのアナウンスとして本番環境ではプラグインを無効化しておくことを推奨しています。
有効化・無効化するだけなのでそんなに手間でもないのですが、ブログ開設まもない頃(今)はどうしても記事を書くこととカスタマイズとを平行して行う機会が多く、カスタマイズ時には「Genesis Visual Hook Guide」が大いに役に立つので、いちいち切り替えるのは面倒です。
訪問者数なんて0に等しいこの時期でもやはり気になるものは気になるので、無効化しておく方が気持ちがスッキリします。
だけどめんどくさいので、ログインしている場合はビジュアル表示され、ログインしていない場合は、「?gvhg_hooks=show」を付けてもビジュアル表示がされないようにすることにしました。
Genesis Visual Hook Guideプラグインをログインしていない場合は無効にする方法
めっきり更新されていないGenesis Visual Hook Guideプラグインですが、未来のいつかに更新されることも考えられます。
できる限りプラグインファイルは触りたくないので、functions.phpで対応することにしました。
Genesis Visual Hook Guideの関数をremove_actionする
WordPressのアクションフック「init」を使って非ログイン時にはGenesis Visual Hook Guideが機能しないようにしてみます。
「init」は、プラグインの初期化に使われるフックで、ユーザーの認証状態を持っています。
通常プラグインの初期化に使われる。この段階で現在のユーザーに対する認証は完了している。
Fires after WordPress has finished loading but before any headers are sent.
Most of WP is loaded at this stage, and the user is authenticated. WP continues to load on the init hook that follows (e.g. widgets), and many plugins instantiate themselves on it for all sorts of reasons (e.g. they need a user, a taxonomy, etc.).
Plugin API/Action Reference/init
Genesis Visual Hook Guideを非ログイン時に無効にするコード
if(!function_exists(‘gvhg_filter_logic’))でGenesis Visual Hook Guideプラグインが有効かチェックをし、プラグインが無効もしくはなければ何もしません。
if(!is_user_logged_in())でログインしているかをチェックし、true以外の場合、つまりログインしていない場合は、Genesis Visual Hook Guideの出力関連のアクションを削除しています。
アクションを削除することで実行されなくなりますのでログインをしていない場合はビジュアルは表示されません。
remove_action( ‘admin_notices’, ‘gvhg_active_notice’ );
は、プラグインが有効な場合に管理画面に絶えず表示されるGenesis Visual Hook Guideの注意喚起がちょっと目障りだった(親切なのにかたじけない)ので表示しないようにしています。
ユーザーによって切り分けることも
このブログはわたし一人しか管理者がいないので、「ログインしているか、していないか」の切り分けで問題ありませんが、ユーザーの権限によっても振り分けができます。
ユーザー権限のチェックができるcurrent_user_can()で振り分け
if(!is_user_logged_in())を
if(!current_user_can(‘administrator’))
に変更しただけです。
WordPressのユーザー権限とスラッグ一覧
権限のスラッグは5個あるようです。
current_user_can()で条件分岐する際に下記のスラッグを引数に利用することでその権限を持っているかチェックができます。
権限 | スラッグ |
---|---|
管理者 | administrator |
編集者 | editor |
投稿者 | author |
寄稿者 | contributor |
購読者 | subscriber |
- Super Admin – somebody with access to the site network administration features and all other features. See the Create a Network article.
- Administrator (slug: ‘administrator’) – somebody who has access to all the administration features within a single site.
- Editor (slug: ‘editor’) – somebody who can publish and manage posts including the posts of other users.
- Author (slug: ‘author’) – somebody who can publish and manage their own posts.
- Contributor (slug: ‘contributor’) – somebody who can write and manage their own posts but cannot publish them.
- Subscriber (slug: ‘subscriber’) – somebody who can only manage their profile.
Genesis Visual Hook Guideは、Genesisの子テーマをカスタマイズする際に便利なプラグインなので、投稿者権限で必要な場面というのはあまりなさそうですが、必要に応じて使い分けてみてください。
その他、ユーザーIDで分岐させることもできますが、本日はそっとしておきます。
コメントを残す