admin管理画面に項目を追加

  • 任意のメニューを追加したいの場合
    <code>
    add_action('admin_menu', 'register_custom_menu_page');
    
    function register_custom_menu_page() {
       add_menu_page('ページのタイトルタグの内容', 'メニュー上のタイトル', 'administrator', 'custom_menu,'myfunc');
    }
    
    function myfunc(){
    //何々
    }
    
    </code>
    

    add_menu_pageは実際は第6、第7パラメータがあり、それぞれアイコンとメニューの位置を決められる。
    省略すれば一番下に来るので、普通に使うにはこれでいいだろう。

  • フォームの内容。この書式に従っていれば、特別に保存ルーチンは不要(!)。WPはフレームワークだと実感する。
    もちろん、保存する以外に何かをしたければ、そのためのルーチンを書く必要がある。

    <code>
    <pre class="syntax HTML"><div class="wrap">
    	<h2>Your Plugin Name</h2>
    
    <!-- 投稿先はoptions.php!-->
    <form method="post" action="options.php">
    
    <!-- お約束のnonce!-->
    	<?php wp_nonce_field('update-options'); ?>
    
    	<table class="form-table">
    
    		<tr valign="top">
    			<th scope="row">New Option Name</th>
    			<td><input type="text" name="new_option_name" value="<?php echo get_option('new_option_name'); ?>" /></td>
    		</tr>
     
    		<tr valign="top">
    			<th scope="row">Some Other Option</th>
    			<td><input type="text" name="some_other_option" value="<?php echo get_option('some_other_option'); ?>" /></td>
    		</tr>
    
    		<tr valign="top">
    			<th scope="row">Options, Etc.</th>
    			<td><input type="text" name="option_etc" value="<?php echo get_option('option_etc'); ?>" /></td>
    		</tr>
     
    	</table>
    
    <!--この2行が肝心!-->
    	<input type="hidden" name="action" value="update" />
    	<input type="hidden" name="page_options" value="new_option_name,some_other_option,option_etc" />
    
    	<p class="submit">
    	<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
    	</p>
    
    </form>
    </div>
    </pre></code>
    
  • 自分で何かの処理を加えたい場合・・・POSTの宛先を自分自身にして、$_POSTを取り出してナニナニすれば良い。
    例えば、単純な値の出し入れ(text,select,radio etc)ならばこのまま使えるが、チェックボックスを使って複数の選択肢をコントロールしたい場合・・・値のクリアやシリアライズの処理をしなくてはいけないので、それは自前で実装する必要がある。あるいはフックを使ってうまく処理するか(未確認)。

  • コメント

    タイトルとURLをコピーしました