站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
WordPress更改设置页面
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="border:1px solid #000; text-align:center; float:right; padding:6px;"><strong>导航:</strong> [[WordPress开发文档|上一页]] | {{Template:WordPress导航}}</span> <div style="clear:both;"></div> 目前我们已经能够修改已有的插件设置页面,虽然并不是非常成功。 注意:更改设置页面相对较复杂,不推荐新手尝试。 ==初始化变量== 首先在插件PHP主代码中声明所有需要添加到设置页面中的变量: //Function to create the vars in the database function set_samplePlugin_options () { add_option('fake_option_a','value','Description'); add_option('fake_option_b','value','Description'); add_option('fake_option_c','value','Description'); } //Function to delete the vars from the database function unset_samplePlugin_options () { delete_option('fake_option_a'); delete_option('fake_option_b'); delete_option('fake_option_c'); } //Add and Remove vars when creating/removing plugin register_activation_hook(__FILE__,'set_samplePlugin_options'); register_deactivation_hook(__FILE__,'unset_samplePlugin_options'); ==查找XHTML== 设置变量后我们需要创造条件让管理用户编辑这些变量。我们可以用传统方法——[http://www.wordpress.la/codex-%E5%88%9B%E5%BB%BA%E9%80%89%E9%A1%B9%E9%A1%B5%E9%9D%A2.html 新建一个设置界面]来完成任务,但现在我们把选项添加到已有页面上同样可以完成任务,而且这比新建页面更方便。 我们可以把选项设置添加到下面几个页面中: #options-general.php #options-writing.php #options-reading.php #options-privacy.php #options-permalink.php #options-misc.php 下面是整个更改过程中最复杂的一部分:仔细查看插件主代码,在适当的位置上插入我们的选项[[XHTML]]代码。 我们选取options-reading.php为例。首先我们要以网站管理用户的身份从网站上进入options-reading.php相应的页面。页面显示后,查看页面源代码: *[[IE]]7:页面-> 查看源代码 *[[Firefox]]:查看-> 页面源代码 *[[Safari]]:查看->查看源代码 为选项在页面中寻找适当的插入位置。这里我们将选项插入"Encoding for pages and feeds"下方。 然后在源代码中查找以下内容: 78 < tr valign="top"> 79 < th width="33%" scope="row">Encoding for pages and ... 80 < td><input name="blog_charset" type="text" id="blog... (注意:行数可能因安装情况而有所不同。) 接下来查看我们可以利用的代码。 注意下面表中的特殊信息: 77 < table width="100%" cellspacing="2" cellpadding="5"... 78 < tr valign="top"> 79 < th width="33%" scope="row">Encoding for pages and ... 80 < td><input name="blog_charset" type="text" id="blog... 81 The character encoding you write your blog in (UTF-... 82 </tr> 83 </table> 我们可以从所学的[[HTML]]知识中了解到,在表中再次加入“TR”标签后我们就可以再添加一行代码。下面我们需要先找到以上代码中的“TR”结束标签: 81 ... recommended</a>)</td> 82 </tr> 这里必须要明确关闭“TR”标签,这样我们的代码才不会放错位置,当然“TR”结尾标签也不能太长,否则代码查找不到该标签。 于是我们可以插入:"recommended</a>)</td>\n</tr>" 。插入的代码根据字符串\n来判断新代码行的起点。保留\n以便稍后编写函数。 ==创建新XHTML== 了解代码的插入位置和代码样式之后,下一步就可以创建我们的新代码了。下面先参考一下原有代码段: < tr valign="top"> < th width="33%" scope="row"> Encoding for pages and feeds: </th> <td> <input name="blog_charset" type="text" id="blog_charset" value="UTF-8" size="20" class="code" /> The character encoding you write your blog in (UTF-8 is <a href="link">recommended</a>) </td> </tr> 我们可以根据当前页面来修改XHTML的各个元素。Label控件位于“TH”开始标签和结束标签之间,input 标签即实际文本框,代码后半部分附带简要说明。从以上代码中还能看到,input的名称和ID都必须和之前设置的选项名称与ID一致。下面是修改后的代码示例: < tr valign="top"> < th width="33%" scope="row"> Sample Option: </th> < td> <input name="fake_option_a" type="text" id="fake_option_a" value="" size="20" class="code" /> This is a description </td> </tr> ==编写脚本== 此时我们需要将[[XHTML]]代码写入页面。通常情况下我们可以自己写入,但这一过程已经被要求自动进行,因此我们只能通过Javascript来写入代码(WordPress目前还没有相应的过滤器)。 现在我们回到主插件[[PHP]]代码,在其中加入一个名为“add_fake_options”的函数,函数名来源于其用途: function add_fake_options () { } 然后命令WordPress在利用action钩子创建admin-footer时运行该函数: function add_fake_options () { } add_action('admin_footer', 'add_fake_options'); 接下来要求WordPress在管理页面上添加script标签来创建[[Javascript]]: function add_fake_options () { echo '<script type="text/javascript">'; echo '</script>'; } add_action('admin_footer', 'add_fake_options'); 之后我们可以要求WordPress只运行我们需要的页面(用PHP也可以达到这一效果)。下列代码查找页面标题并判断标题是否为“options-reading”。 function add_fake_options () { echo '<script type="text/javascript">'; echo 'if(window.location.href.indexOf("'. 'options-reading")!=-1) {'; echo '}'; echo '</script>'; } add_action('admin_footer', 'add_fake_options'); 然后要求WordPress将以上代码段替换为下面的代码段以及我们创建的[[XHTML]]代码。在下面的代码中,我们用“replace”函数在options-reading的form1中查找我们曾经在“查找XHTML”中查找的内容。所用语句是:document.form1.innerHTML.replace(insertHTML,insertHtml+replaceHtml)。这样我们就可以把在option_reading中查找到的代码和我们创建的代码结合在一起: function add_fake_options () { echo '<script type="text/javascript">'; echo 'if(window.location.href.indexOf("'. 'options-reading")!=-1) {'; echo 'document.form1.innerHTML ='; echo 'document.form1.innerHTML ='; echo 'document.form1.innerHTML.replace('; echo '"recommended</a>)</td>\n</tr>",'; echo '"recommended</a>)</td>\n</tr>'. '<tr valign=\"top\"> '. '<th scope=\"row\" width=\"33%\">'. 'Sample Option:</th> <td>'. '<input name=\"fake_option_a\" '. 'id=\"fake_option_a\" value=\"\" '. 'size=\"20\" class=\"code\" '. 'type=\"text\"> '. 'This is a description</td> </tr>");'; echo '}'; echo '</script>'; } add_action('admin_footer', 'add_fake_options'); 这时WordPress会把选项添加进页面,但当前设置并没有显示出来,点击update后也不能保存所添加的选项设置。我们还要在input标签的变量值里加入一个get_option() 函数,当前设置才能完全显示: function add_fake_options () { echo '<script type="text/javascript">'; echo 'if(window.location.href.indexOf("'. 'options-reading")!=-1) {'; echo 'document.form1.innerHTML ='; echo 'document.form1.innerHTML ='; echo 'document.form1.innerHTML.replace('; echo '"recommended</a>)</td>\n</tr>",'; echo '"recommended</a>)</td>\n</tr>'. '<tr valign=\"top\"> '. '<th scope=\"row\" width=\"33%\">'. 'Sample Option:</th> <td>'. '<input name=\"fake_option_a\" '. 'id=\"fake_option_a\" value=\"'. get_option('fake_option_a'). '\" '. 'size=\"20\" class=\"code\" '. 'type=\"text\"> '. 'This is a description</td> </tr>");'; echo '}'; echo '</script>'; } add_action('admin_footer', 'add_fake_options'); 这时我们还要编辑一个名为 page_options的隐变量才能够使用户点击“update”生效。该隐变量中包含了页面上所有选项设置,各个选项之间用逗号隔开。首先用getElementsByName('page_options')来选择隐藏的input对象,然后在input对象的值中加入自己的名字 ,名字后加上一个逗号: function add_fake_options () { echo '<script type="text/javascript">'; echo 'if(window.location.href.indexOf("'. 'options-reading")!=-1) {'; echo 'document.form1.innerHTML ='; echo 'document.form1.innerHTML ='; echo 'document.form1.innerHTML.replace('; echo '"recommended</a>)</td>\n</tr>",'; echo '"recommended</a>)</td>\n</tr>'. '<tr valign=\"top\"> '. '<th scope=\"row\" width=\"33%\">'. 'Sample Option:</th> <td>'. '<input name=\"fake_option_a\" '. 'id=\"fake_option_a\" value=\"'. get_option('fake_option_a'). '\" '. 'size=\"20\" class=\"code\" '. 'type=\"text\"> '. 'This is a description</td> </tr>");'; echo 'document.getElementsByName("page_options")[0]'. '.value = '. 'document.getElementsByName("page_options")[0]'. '.value + ",fake_option_a";'; echo '}'; echo '</script>'; } add_action('admin_footer', 'add_fake_options'); [[Image:ModOptnPageExample.png|WordPress更改设置页面]] 大功告成!如果我们能够了解每一步的操作,为已有的设置页面添加新的选项设置并不会像我之前说的那么复杂。如果要在初始化变量后添加多个选项,我们需要将XHTML代码添加到相同页面,同时将名称添加到page_options列表中。 ==相关条目== *[[Drupal]] *[[OBLOG]] *[[X-Space]] *[[SaBlog-X]] *[[Bo-Blog]] [[category:WordPress中文文档|G]] [[category:WordPress网站开发|G]] [[category:WordPress开发文档|G]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:WordPress导航
(
查看源代码
)(受保护)