wordpress插件开发(2)中写了一个简单的插件。它最大的不足在于不能订制信息,需要替换的字符串和替换信息都是写死在程序中。在这个版本里要就解决这个问题。
wordpress提供了两种方式来把数据保存到数据库,一个是用options panels,一个是创建自己的数据表。这次介绍的是第一种方法。
我对options panels的理解:它是wordpress提供的一个模板,按照它的标签方便地定义自己的字段,并对其进行保存,修改。
方法add_option($key,$value)将数据库以key-value的形式保存,get_option($key)则将key对应的value取出。
一、修改管理页面
1.创建form

  1. <form name="myform" method="post" action="options.php">

这里的action要指定为 options.php。在你提交时,wrodpress会转向这个页面进行处理。

2. nonce Magic

  1. <?php wp_nonce_field('update-options') ?>

官方对这条语句的说明:
This will insert two hidden fields which automatically help to check that the user
can update options and also redirect the user back to the correct admin page (because the form action is a different page).
考到php页面里就是了。效果就是看当前用户是否可以修改数据,修改之后跳转到正确的页面并且给出提示。
3.添加option

  1. <div id="msgall">
  2. <fieldset class="options">
  3. <legend>keyword: </legend>
  4. <p>
  5.     <textarea style="width: 80%;" rows="5" cols="40" name="cutefool_keyword"><?php echo get_option("cutefool_keyword");?></textarea>
  6. </p>
  7. </fieldset>
  8.  
  9. <fieldset class="options">
  10. <legend>replacement: </legend>
  11. <p>
  12.     <textarea style="width: 80%;" rows="5" cols="40" name="cutefool_replace"><?php echo get_option("cutefool_replace");?></textarea>
  13. </p>
  14. </fieldset>
  15. </div>

如上所示,每个option都以fieldset标签包装起来,我们要做的事情只是修改一下字段的名称。取名时注意,尽量独特,可以加上自己的域名或是函数名。
4.提交按钮

  1. <p class="submit">
  2.     <input type="submit" value="<?php _e('Update Options  &raquo;') ?>" name="update_message"/>
  3. </p>

这没啥说嘀…只是_e()这个方法牵扯到了本地化的问题,以后再研究…

5.action字段

<input type=”hidden” name=”action” value=”update” />

这是必须的。
6. page_options字段

  1. <input type="hidden" name="page_options" value="cutefool_keyword,cutefool_replace" />

这也是必须的。这是用来指定哪些字段需要更新,各字段用逗号分开。
7.关闭form
这不用多说了,

  1. </form>

搞定。

二、初始化插件参数

当插件启用时,可以将一些默认数据通过options的方式保存到数据库。如以下方法:

  1. function cutefool_copyright_install () { 
  2.       add_option("cutefool_keyword","<!--copyright-->");
  3.       add_option("cutefool_replace","我的版本");     
  4. }

当插件被激活时调用这个方法。所以要再加上一个action:

  1. add_action('activate_MyCopyright/myCopyright.php', 'cutefool_copyright_install');

第一个参数中,MyCopyright/myCopyright.php为初始化函数所在的php文件路径,而前面要加上”active_”前缀。
第二个参数指定了初始化函数名称。
这样,在插件初次启用时,就会向数据库中插入数据,之后可以通过get_option()方法得到它。

三、用户界面
插件页会自动加载 wp后台的样式表,只要在我们的页面上指定对应的class就可以了。
如:

  1. <div class="wrap">

当然也可以自已定义自己的样式。

四、插件下载
MyCopyright plugin