HOME>WEBプログラム覚書>[WordPress]管理画面のフッタのフィルタとアクション。

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

フッタ部分はwp-admin/admin-footer.phpに書かれています。 見にくいだけで特に難しいところはありませんね。

wp-admin/admin-footer.php

  1. <?php do_action( 'in_admin_footer' ); ?>
  2. <p id="footer-left" class="alignleft"><?php
  3. $upgrade = apply_filters( 'update_footer', '' );
  4. $footer_text = array(
  5.    '<span id="footer-thankyou">' . __( 'Thank you for creating with <a href="http://wordpress.org/">WordPress</a>.' ) . '</span>',
  6. );
  7. echo apply_filters( 'admin_footer_text', implode( ' &bull; ', $footer_text ) );
  8. unset( $footer_text );
  9. ?></p>
  10. <p id="footer-upgrade" class="alignright"><?php echo $upgrade; ?></p>
  11. <div class="clear"></div>
  12. </div>
  13.  

出力と合わせてみるとこんな感じ。

AdminFooks.php

  1. <?php
  2. class AdminFooks
  3. {
  4.     /**
  5.      * フッタのワードプレスのバージョン部分のテキストを設定する。
  6.      *
  7.      * @param strign $string
  8.      */
  9.     public function update_footer($string)
  10.     {
  11.         return 'update_footer';
  12.     }
  13.  
  14.     /**
  15.      * フッタの文章を変更する。
  16.      *
  17.      * @param string $code
  18.      */
  19.     public function admin_footer_text($html)
  20.     {
  21.         return 'admin_footer_text';
  22.     }
  23.  
  24.     /**
  25.      * フッタの先頭に何かを出力する場合、echo
  26.      *
  27.      * @return void
  28.      */
  29.     public function in_admin_footer()
  30.     {
  31.         echo '<p>in_admin_footer</p>';
  32.     }
  33. }
  34. ?>

function.php

  1. <?php
  2. if (is_admin()) {
  3.     require_once 'path/to/AdminFooks.php';
  4.  
  5.     $admin_fooks = new AdminFooks();
  6.     add_filter('update_footer',     array($admin_fooks, 'update_footer'));
  7.     add_filter('admin_footer_text', array($admin_fooks, 'admin_footer_text'));
  8.     add_filter('in_admin_footer',   array($admin_fooks, 'in_admin_footer'));
  9. }
  10. ?>

結果はこんな感じになります。

update_footerにはcore_update_footer関数も登録されてるので優先順位なしだとWordPressのバージョンが古い場合、 「バージョン 3.3.1 を入手」のような表示が出てしまします。これも表示させたくない場合、

function.php

  1. <?php
  2. add_filter('update_footer',     array($admin_fooks, 'update_footer'), 20);
  3. ?>

のように、優先度を下げることでcore_update_footerの後に実行されるようにします。

投稿日 2012年2月 1日 03:54
カテゴリ PHP
タグ WordPress
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1263

コメント

コメントする
Name
Email Address
URL