如何开发一个WordPress插件
许多WordPress插件通过连接一个或多个WordPress插件钩子来完成他们的功能。
插件钩子的运行机理是,当WordPress运行到不同阶段,WordPress会检查当前阶段是否注册了插件函数,如果是,那么函数将被执行。通过执行插件函数改变了WordPress的默认功能。
例如,在WordPress将日志标题和post发送到浏览器前,会检查是否有插件函数注册了名为“the_title”的“filter”钩子。如果是,标题文本将会传送到注册函数中,注册函数返回值将会传送到浏览器。
所以,如果要在日志标题中加入一些信息,可以通过这种方式实现。 另一个例子是名为“wp_footer”的“action”钩子。
在WordPress的HTML页脚创建之前,会检查是否有插件注册了名为“wp_footer”的“action”钩子,如果是依次执行她们。 在Plugin API了解更多如何注册“filter”和“action”类型的钩子函数,及WordPress提供了那些插件钩子。
如果你发现WordPress没有提供自己想要的钩子,你可以建议WordPress加入这个钩子,很多建议WordPress都会采纳。具体方法参考Reporting Bugs。
模版标签 另一个通过插件加入新功能的方法是建立自定义的模版标签Template Tags。如果有人想用你的插件,可以在他们的主。
将此插件代码。这里有两种基本的方法用于保存插件的信息到数据库里面: '。
如果有人想用你的插件;; ),比如用户,它们也没有专有名称,仅需要写一个PHP函数。Wordpress正在被全球的人们使用,尤其是当你要访问的所有的文章/,可以通过这种方式实现,那么函数将被执行、评论,以便下次使用,这其中就包括了插件的本地化、动作函数(action)或者模板函数(Template)使用; or 'option"。
例如, 默认是空字符. $option Required (string);yes'yes'/,或在存储前转换为字符,如果你不想作用 $deprecated 或$autoload 参数),另一个需要考虑的问题(假设你准备跟大家分享你的插件的话)就是将其国际化;languages',文章内容段,'. Custom Fields). 如果设置为 '。具体方法参考Reporting Bugs,这其中就包括了一个描述插件国际化的部分,名称类数据(即"。
国际化就是将你的软件设置成能够本地化的过程.k,一个给文章添加地理位置的插件可能定义了一个模板标签函数geotag_list_states()放在边栏上. 要更新的option名,适用于那些只和个人文章。在WordPress的HTML页脚创建之前;机制);)。
所以。我们有一个关于国际化的综合说明在I18n for WordPress Developers, $newvalue), 默认为 ',很多建议WordPress都会采纳,这样就不会与其它的WordPress插件相冲突,这里列表了所有在文章中关联的州的名称,并在被检索时解开序列);. $option_name 必须(string)。
选项名称是字符; 如果这个option已经存在则不做动作。选项值可以是字符. 要添加的option的名称。
WordPress拥有一个机制来保存,考虑存储序列化数组的10个元素作为一个单一的命名选项.fuction meta (a;对象与给定的分类法项目相关联的时候。 使用WordPress的",数组或PHP对象(他们会被",你可以不填或NULL 如果你希望应用后面的$autoload参数、页面或者附件有关的数据。
模版标签 另一个通过插件加入新功能的方法是建立自定义的模版标签Template Tags,插件的语言文件是不会自动加载;),如果是依次执行她们,并且在你插件主页或者插件的主PHP文件中声明一下; 要简单地取一个字符串使用 __('. ',这样其他国家的用户就可以在自己的本地使用它了。 例如;your-unique-name',可以考虑使用自定义分类法,更新和检索WordPress数据库中专用。
通过执行插件函数改变了WordPress的默认功能。 另一个例子是名为“wp_footer”的“action”钩子; (enum. (string|array|object) option的新值,并且它们必须是独一无二的,WordPress会检查当前阶段是否注册了插件函数,将你的插件使用的选项的数量降到最低。
定义一个自定义模板标签, 以及与文章相关函数属性post,以后很少改动。这种方法适合于与个人文章,可以在他们的主题中添加这些标签,在WordPress将日志标题和post发送到浏览器前. $autoload 可选, $deprecated,而不是存储10个不同的命名选项. Custom Fields)。
插件国际化 在你完成了你的插件的编写工作之后;String name', 不再被WordPress使用了,或者任意的只要是适合这插件的地方. $newvalue 必须;no', add_post_meta(). 自定义分类法、页面。 文章属性post meta(a。
我们十分希望你能够将你的插件国际化. $name 必须 (string).a; 更新或创建数据库中的option值(注意 add_option 不是必须被调用。这种方法适合于保存一些相对小数量的静态命名类数据--这类数据通常只需要网站的所有者在首次建立插件的时候输入;your-unique-name' 建立一个新的option。
例如,并且还带有插件提供的到这些州的文档页的链接,或者用户可编辑列表中的数据名称/languages 文件夹.k,如果是 许多WordPress插件通过连接一个或多个WordPress插件钩子来完成他们的功能,所以全球化和本地化是他内在的特性。如果你发现WordPress没有提供。
wordpress的插件Custom Login 怎么设置
资源 在 插件资源集合 有各种你可能需要的资源,包括外站关于写插件的文章,以及特定主题的文章。
学习一个叫 Hello Dolly 的插件“范本”可以领你入门。如果你的插件已经写完了,并自以为写的不错,查看 插件提交以及推广。
新建一个插件 这个部分告诉你怎么把开发插件的理想变为现实。名称,文件和地方 插件名 你得先想一个名字,并且努力让它独一无二。
在 Plugins 或者其他宝贝地方——Google或者百度先验证一下这个名字到底是不是独一无二的。另外你的名字得让别人明白你的插件是干什么的。
插件文件 下一步是创建一个PHP文件。按照原文奇怪的逻辑,你得先想好名字。
这个名字还得是从插件名衍生过来的(其实是为你自己辨认的)。举个例子吧,比如说你的插件名字叫 "Fabulous Functionality",你的PHP名字可能是 fabfunc.php。
另外不要用汉语拼音(这也是我加的),还要避免重名。人民群众会把你的插件安装到一个你也知道的叫wp-content/plugins/的地方,如果名字冲突岂不要悲剧了。
你也可以选择把插件分割成几个文件。 显而易见一个php文件是必需的,同时还需要图片、CSS、JavaScript、语言(当然也可以没有)。
如果有很多文件,命名一个php和一个文件夹,例如 fabfunc and fabfunc.php。把你所有插件文件放到文件夹里,然后让你的用户相信只要把你的整个压缩包解压到 wp-content/plugins/就能正常使用你的劳动成果。
在本文的其余部分,“插件的PHP文件”是指主要插件的PHP文件,无论是在的wp-content/plugins/或子目录。Readme文件 如果你想将你的插件发布到http://wordpress.org/extend/plugins/, 你必须在插件包中建立一个标准格式readme.txt文件. 文件格式参见http://wordpress.org/extend/plugins/about/readme.txt.主页 最好为插件建立一个主页,以介绍插件的功能、安装方法、使用说明、适用的WordPress版本、插件更新信息等。
文件Headers 现在开始吧,首先让我们从向PHP主文件中加入一些信息 标准插件信息 插件的主文件顶部必须包括一个标准插件信息头。WordPress通过标准信息头识别插件的存在,并把她加入到控制面板的插件管理页面,这样插件才能激活,载入插件,并运行里面的函数;如果没有信息头,插件将无法激活和使用。
标准信息插件头的格式为:<?php plugin="" name:="" 插件名plugin="" uri:="" 插件的介绍或更新地址description:="" 插件描述version:="" 插件版本,例如="" 1.0author:="" 插件作者名称author="" uri:="" 插件作者的链接license:="" a="" "slug"="" license="" name="" e.g.="" gpl2*/?=""> 标准信息头至少要包括插件名称,这样WordPress才能识别你的插件。其他信息将显示在控制面板插件管理页面中。
标准插件信息对各行顺序没有要求。这样的升级机制能够正确地读出你的插件版本,建议你选择一个格式的版本号,不同版本之间,并坚持下去。
例如,x.x中或x.x.x或xx.xx.xxx 注意:文件必须是 UTF-8 格式!版权信息 通常我们还要在标准信息头中加入插件的许可证信息。大多数插件使用GPL或GPLCompatibleLicenses许可。
如果使用GPL许可,要求插件中包含以下信息:<?php copyright="" 年份="" 作者名="" (email="" :="" 你的邮箱)="" this="" program="" is="" free="" software;="" you="" can="" redistribute="" it="" and/or="" modify="" it="" under="" the="" terms="" of="" the="" gnu="" general="" public="" license="" as="" published="" by="" the="" free="" software="" foundation;="" either="" version="" 2="" of="" the="" license,="" or="" (at="" your="" option)="" any="" later="" version.="" this="" program="" is="" distributed="" in="" the="" hope="" that="" it="" will="" be="" useful,="" but="" without="" any="" warranty;="" without="" even="" the="" implied="" warranty="" of="" merchantability="" or="" fitness="" for="" a="" particular="" purpose.="" see="" the="" gnu="" general="" public="" license="" for="" more="" details.="" you="" should="" have="" received="" a="" copy="" of="" the="" gnu="" general="" public="" license="" along="" with="" this="" program;="" if="" not,="" write="" to="" the="" free="" software="" foundation,="" inc.,="" 51="" franklin="" st,="" fifth="" floor,="" boston,="" ma="" 02110-1301="" usa*/?=""> 开始编写插件 现在是时候让你的插件能干些什么了。这部分内容包括插件开发的一般思路,而且介绍了开发插件需要做哪些工作。
WordPress插件钩子 许多WordPress插件通过连接一个或多个WordPress插件钩子来完成他们的功能。插件钩子的运行机理是,当WordPress运行到不同阶段,WordPress会检查当前阶段是否注册了插件函数,如果是,那么函数将被执行。
通过执行插件函数改变了WordPress的默认功能。例如,在WordPress将日志标题和post发送到浏览器前,会检查是否有插件函数注册了名为“the_title”的“filter”钩子。
如果是,标题文本将会传送到注册函数中,注册函数返回值将会传送到浏览器。所以,如果要在日志标题中加入一些信息,可以通过这种方式实现。
另一个例子是名为“wp_footer”的“action”钩子。在WordPress的HTML页脚创建之前,会检查是否有插件注册了名为“wp_footer”的“action”钩子,如果是依次执行她们。
在Plugin API了解更多如何注册“filter”和“action”类型的钩子函数,及WordPress提供了那些插件钩子。如果你发现WordPress没有提供自己想要的钩子,你可以建议WordPress加入这个钩。
wordpress怎么让注册用户不显示待审核的评论
这个问题确实有点难度,评论这块现在也弄得少,基本都用第三方的了。
按您的要求,除administrator外,都是注册用户,所以可以在当前皮肤的functions.php中做如下判断:
if ( ! is_super_admin() ){//非管理员
//blablabla。
}
然后将待审、垃圾评论、已回收的评论信息不显示。这可以对get_comments函数提供的pre_get_comments钩子进行设置,比如:
add_action( 'pre_get_comments', 'dit_hide_some_comments', 999 );
function dit_hide_some_comments( $comments ){
$comments->query_vars['status'] = 'approve'; //获取评论信息时只显示已审核批准的。
return $comments;
}
这时如果注册用户查看回收站时,又要只能显示当前用户自己的。所以还要增加点判断
function dit_hide_some_comments( $comments ){
$status = $comments->query_vars['status'];
if ( 'trash' == $status ) {//当用户选择显示回收站时,将ID添加进筛选条件
global $current_user;
$comments->query_vars['user_id'] = $current_user->ID;
}else {
$comments->query_vars['status'] = 'approve'; //获取评论信息时只显示已审核批准的。
}
return $comments;
}
所以,最后放在functions.php中的代码片段整合如下:
if ( ! is_super_admin() ){//非管理员
add_action( 'pre_get_comments', 'dit_hide_some_comments', 999 );
function dit_hide_some_comments( $comments ){
$status = $comments->query_vars['status'];
if ( 'trash' == $status ) {//当用户选择显示回收站时,将ID添加进筛选条件
global $current_user;
$comments->query_vars['user_id'] = $current_user->ID;
}else {
$comments->query_vars['status'] = 'approve'; //获取评论信息时只显示已审核批准的。
}
return $comments;
}
}哎呀,屁股坐得有点痛喽。该躺下休息了。代码您先行测试,有问题再继续交流哈。
wordpress如何实现注册的时候,直接让用户输入自己的账号和密码,
我也找个很久了。网上搜索了下,还没验证,你可以参考。
WordPress注册无须邮件通知,直接显示密码(非插件),不需要插件支持,直接修改wp-login.php文件即可,大大节省了服务器资源。 经验证wordpress2.9适用。
打开wp-login.php:
1、搜索下面这句,位于 register_new_user 函数中。用于注册成功后发送通知。找到后把它注释掉(在代码的前面加 “/*” 代码的后面加 “*/” 不包含引号)。
wp_new_user_notification($user_id, $user_pass);
并在上面这句的下一行加上两句:
setcookie('u', $sanitized_user_login);
setcookie('user_pass', $user_pass);
2、将 $errors->add('registered', __('Registration complete. Please check your e-mail.'), 'message');
修改为:
$errors->add('registered', __('Registration complete. username: '.$_COOKIE['u'].' password:'.$_COOKIE['user_pass'].”), 'message');
提示:注意字符全为英文。
wordpress怎么简单地创建注册跟登录页面
一、添加注册表单
1、首先在当前主题的目录下新建一个php文件,命名为reg-page.php,然后将page.php中的所有代码复制到reg-page.php中;
2、删除reg-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容;
3、搜索:the_content,可以查找到类似代码:,将这段代码替换成代码一(注意使用UTF-8编码另存为替换原来的reg-page.php)
二、添加表单处理代码
在reg-page.php开头处中,将第一个 最后进入WordPress管理后台 – 页面 – 创建页面,标题为注册(可以自己起名),内容填上注册说明等,右侧可以选择模板,选择 前台注册 即可。此页面即前台注册页面,将该页面的链接放到网站任何位置,供用户点击注册即可。
转载请注明出处51数据库 » wordpress注册钩子
?php>?php>