在开始之前,需要注意三件事情
I、给插件取一个个*化的名字,越个*化越好,以防和其他插件重名冲突。
II、代码里面,一定要包含注释,不为自己,也要为想修改你代码的别人想想。
III、尽量用**版的 WordPress进行开发和测试。
插件名称和插件结构
一般来说,都是在 wp-content\plugins目录下建立一个文件夹,文件夹名就是插件的名称,我们插件名字为"copyright_plugin",文件结构如下。
\wp-content\plugins\copyright_plugin下有copyright_plugin.php和readme.txt
这里的 readme.txt文件中包含了一些插件的介绍,使用说明等信息,主要是提交到 WordPress**网站时候用到的,可以参考他们给的模板,另外还有插件截图预览的功能,需要另外添加图片,但是我们现在是练习,不需要提交到**,所以暂时先不涉及这些。
插件的核心
总的来说,插件的核心是两个 function,用来添加 Hooks(中文译为钩子)
add_action($hookname,$callbackfunction)
add_filter($hookname,$callbackfunction)
这两个方法相当重要,几乎所有的插件都要用到他们。
Actions,我理解就是 wordpress核心代码预留的一些特殊的切入点,或者说是在执行一些特定**时候发生,例如文章发布时,或者访客留言时触发。
Filters,应该就是 wordpress执行时,对数据传输过程的一种过滤机制,例如当文章保存到数据库的过程,或者文章从事数据库中取出,展现到浏览器中的这个过程。
我们今天要制作的插件,应该是用 Filters,因为我们要在文章显示在浏览器之前,在*后面加上一段字符窜,用来显示版权信息,后面添加菜单项的时候,也要用到 Actions。
插件概要信息
用文本编辑器打开 copyright-plugin.php文件,输入如下信息:
<?php
/*
Plugin Name: Copyright plugin
Plugin URI:
Description:此插件将在文章正文*下面,显示一行版权信息
Version: 1.0.0
Author: xcxc
Author URI:
License: GPL
*/
?>
保存好文件,然后登录 WordPress后台,打开插件菜单,应该就可以看到这个插件,已经显示在插件列表里面了,并且可以启用这个插件试试,不过没有任何效果,因为到目前为止,这个插件还没有实现任何功能。
为插件实现功能
修改copyright_plugin.php
<?php
/*
Plugin Name: Copyright plugin
Plugin URI:
Description:此插件将在文章正文*下面,显示一行版权信息
Version: 1.0.0
Author: xcxc
Author URI:
License: GPL
*/
/*此插件将在文章正文*下面,显示一行版权信息*/
function display_copyright(){
return"<p style='color:red'>本站点所有文章均为原创,转载请注明出处!</p>";
}
?>
保存好这个文件,然后打开正在用的主题文件夹,打开index.php文件夹,找到 get_template_part('content', get_post_format());并在下面添加如下代码
if(function_exists('display_copyright')){
echo display_copyright();
}
function_exists是判断 display_copyright函数是否存在,因为当插件停用的时候,主题代码里面是找不到这个函数的,所以要判断一下,防止出错。
然后在 wordpress后台启用该插件,再打开首页看看效果吧!
至此,这段代码,应该可以勉强算是一个插件了。之所以说勉强,是因为这个插件存在一个问题,需要手工去修改主题代码,如果用户换了主题的话,需要在新主题里面再次修改代码,这个不好。
改良插件
还记得我们前面说过的 Hooks(钩子)吗,我们要开始用 Filter钩子了!
代码修改copyright_plugin.php如下:
<?php
/*
Plugin Name: Copyright plugin
Plugin URI:
Description:此插件将在文章正文*下面,显示一行版权信息
Version: 1.0.0
Author: xcxc
Author URI:
License: GPL
*/
add_filter('the_content','display_copyright');
/*这个函数在日志正文结尾处添加一段版权信息,并且只在首页页面才添加*/
function display_copyright($content){
if( is_home())
$content=$content."<p style='color:red'>本站点所有文章均为原创,转载请指明出处!</p>";
return$content;
}
?>
参看以上代码,其中 the_content是钩子的名字,display_copyright是回调函数名称。这样一来,只要启用插件就可以实现功能,无需去修改主题了,请把刚才在index.php文件中添加的代码删掉,然后启用插件,看看效果吧,显示效果应该是一样的,无论怎么换主题,还是会自动显示版权信息。
is_home是判断是不是主页
更进一步
至此一个真正的插件算是完成了。但是此插件将版权信息直接写在代码里,如果用户想自定义版权信息的话,需要修改插件的源代码,仍然不方便,所以此插件仍需改进。其实,我们可以在 WordPress后台中为插件单独添加一个菜单和页面,用户可以在这里来自定义设置设置版权信息,信息可以保存在数据库里面。
先附上完整代码,后面会做说明
<?php
/*
Plugin Name: Copyright plugin
Plugin URI:
Description:此插件将在文章正文*下面,显示一行版权信息
Version: 1.0.0
Author: xcxc
Author URI:
License: GPL
*/
/*注册**插件时要调用的函数*/
register_activation_hook( __FILE__,'display_copyright_install');
/*注册停用插件时要调用的函数*/
register_deactivation_hook( __FILE__,'display_copyright_remove');
function display_copyright_install(){
/*在数据库的 wp_options表中添加一条记录,第二个参数为默认值*/
add_option("display_copyright_text","<p style='color:red'>本站点所有文章均为原创,转载请注明出处!</p>",'','yes');
}
function display_copyright_remove(){
/*删除 wp_options表中的对应记录*/
delete_option('display_copyright_text');
}
if( is_admin()){
/*利用 admin_menu钩子,添加菜单*/
add_action('admin_menu','display_copyright_menu');
}
function display_copyright_menu(){
/* add_options_page($page_title,$menu_title,$capability,$menu_slug,$function);*/
/*页名称,菜单名称,访问级别,菜单别名,点击该菜单时的回调函数(用以显示设置页面)*/
add_options_page('Set Copyright','Copyright Menu','administrator','display_copyright','display_copyright_html_page');
}
function display_copyright_html_page(){
?>
<div>
<h2>Set Copyright</h2>
<form method="post" action="options.php">
<?php/*下面这行代码用来保存表单中内容到数据库*/?>
<?php wp_nonce_field('update-options');?>
<p>
<textarea
name="display_copyright_text"
id="display_copyright_text"
cols="40"
rows="6"><?php echo get_option('display_copyright_text');?></textarea>
</p>
<p>
<input type="hidden" name="action" value="update"/>
<input type="hidden" name="page_options" value="display_copyright_text"/>
<input type="submit" value="Save" class="button-primary"/>
</p>
</form>
</div>
<?php
}
add_filter('the_content','display_copyright');
/*这个函数在日志正文结尾处添加一段版权信息,并且只在首页页面才添加*/
function display_copyright($content){
if( is_home())
$content=$content. get_option('display_copyright_text');
return$content;
}
?>
说明:
以下代码自己要是在启用插件时和停用插件时调用,注释中已经写得很详细了。
/*注册**插件时要调用的函数*/
register_activation_hook( __FILE__,'display_copyright_install');
/*注册停用插件时要调用的函数*/
register_deactivation_hook( __FILE__,'display_copyright_remove');
function display_copyright_install(){
/*在数据库的 wp_options表中添加一条记录,第二个参数为默认值*/
add_option("display_copyright_text","<p style='color:red'>本站点所有文章均为原创,转载请注明出处!</p>",'','yes');
}
function display_copyright_remove(){
/*删除 wp_options表中的对应记录*/
delete_option('display_copyright_text');
}
添加菜单和页面的代码如下:
if( is_admin()){
/*利用 admin_menu钩子,添加菜单*/
add_action('admin_menu','display_copyright_menu');
}
function display_copyright_menu(){
/* add_options_page($page_title,$menu_title,$capability,$menu_slug,$function);*/
/*页名称,菜单名称,访问级别,菜单别名,点击该菜单时的回调函数(用以显示设置页面)*/
add_options_page('Set Copyright','Copyright Menu','administrator','display_copyright','display_copyright_html_page');
}
至此,已经可以在后台看到菜单项了,但是点击的话,还会出错,因为还没有添加对应的页面(如何自定义添加后台菜单位置)
下面开始添加页面,主要代码如下:
function display_copyright_html_page(){
?>
<div>
<h2>Set Copyright</h2>
<form method="post" action="options.php">
<?php/*下面这行代码用来保存表单中内容到数据库*/?>
<?php wp_nonce_field('update-options');?>
<p>
<textarea
name="display_copyright_text"
id="display_copyright_text"
cols="40"
rows="6"><?php echo get_option('display_copyright_text');?></textarea>
</p>
<p>
<input type="hidden" name="action" value="update"/>
<input type="hidden" name="page_options" value="display_copyright_text"/>
<input type="submit" value="Save" class="button-primary"/>
</p>
</form>
</div>
<?php
}
现在再去点击刚才新加的菜单,可以显示出来一个页面了,我们可以在这里设置版权信息文本。
另外还有如下代码要修改
/*这个函数在日志正文结尾处添加一段版权信息,并且只在首页页面才添加*/
function display_copyright($content){
if( is_home())
$content=$content. get_option('display_copyright_text');
return$content;
}
将原来的静态化文本,改成动态的,之所以要这么改,是因为我们已经将数据存到数据库里面了,这里要从数据库里面取出数据。
有些新手就会问:文件不存在为什么却可以正常访问呢?呵呵,这就是伪静态的奥妙所在啦。什么叫“伪静态”?其中的“伪”就是指伪装的意思。就是指静态文件并不真实存在,其实和动态差不多的,用户访问的时候还是要从数据库中读取,只是看
起来像静态化。这样其实还会影响访问速度、消耗服务器内存,一旦数据库出错或者崩溃,整个网站可能都无法访问。但如果使用真静态页面的话,则会有效避免上
述问题。怎样做到让文件真实存在呢?这样访问速度就会快很多,也可以减少服务器消耗,怎样做到呢?下面就简单介绍一下。wordpress如何设置真静态化处理?如何让wordpress自动生成真实存在的静态化文件呢?其实很简单,只需要下载安装一个名叫cos-html-cache的wordpress插件即可。COS-HTML-Cache是一个非常有效的WordPress页面缓存插件,使你的WordPress网站响应速度更快。基于URL重写,该插
件将自动生成真正的HTML文件,当有用户或搜索引擎蜘蛛来访问你的伪静态页面时,该插件会自动更新HTML文件及其相关的文章修改。你可以在wordpress后台选择插件>安装插件,输入cos-html-cache然后搜索安装,*后在启用即可。或者到wordpress网站下载cos-html-cache压缩包,解压后用FTP上传到/wp-content/plugins/目录下面,然后在后台启用。插件安装成功生效以后,并不会马上生成html静态文件,当下次用户进入或者有蜘蛛到访的情况下,他才会自动生成或更新html文件。如果你想快速生成html文件看下效果,可以使用站长工具里面的死链接检测,并模仿蜘蛛来访问你的网站即可。如果没有生成静态化文件怎么办呢?我将会在下篇*文中介绍。
1.纯静态页面
当用户访问时,不需要经过服务器解析,直接就可以传送到客户端,此类型的页面,由于不需要解析就能直接访问,一般情况下,比动态页面的执行速度快。
2.静态化
页面静态化就是用动静结合的方式将动态网站生成静态网站来保存。这是实实在在的html文件,也就是静态页面。
3.伪静态化(URL静态化)
伪静态化不是真正意义上的静态化,它只是利用某种方法将访问的路径也就是URL地址转换成为.html为后缀的文件,但是实际上,文件本身还是以原来的后缀保存在服务器上。
静态化是提高网站访问速度、减轻服务器压力常用解决方案之一。
但也存在弊端——
1.可维护*下降
采用静态页面生成,会对磁盘某一区域读写平凡,对服务器的损耗较大,需要即时的备份。而且针对大型系统,有必要制定相应的备份规范和更新制度。同时如果后期系统需要修改,针对大量页面文件的修改也是需要耗费人力的,维护成本增加。
2.增大服务器空间占有率
由于生成的文件数量太多,就需要考虑文件以及文件夹结构问题,甚至对于服务器空间大小的要求也是比较高的。同时备份的实时*也要求较高,文件数量一旦增大,备份也是一个相当大的问题。
3.消耗服务器资源
刚刚才说了静态化会让服务器资源*大化,怎么又消耗服务器资源了呢?那是因为文件在写入硬盘时会调用IO流,这个对服务器资源的占用是比较高的。
所以,是否使用静态化,还是要依据网站本身情况而定。其实,简言之,就是在你空间够用的情况下可以选在静态化。
那么针对WordPress,还有一点需要说明:WordPress本身已经完成伪静态化,你只需要开启就可以了,但是不是真正的静态化,如果你想实现静态化(当然不是指纯静态化!)你需要插件的帮助了。这里就有一个问题了,我看很多人说*好是主题确定下来,应该修改的地方都修改好了,以后不会再更改主题,或者改的范围很小的时候,再安装插件。我就想,那么我需要定期更新新内容,是否也算没有固定?不能安装插件么?其实,不是的,他这里的固定,只是只你*客的主题方面,因为换主题,小工具,插件什么什么的都要清除缓存后才能看到效果,删除缓存就可以了。
WordPress 3.0五大新特征是WordPress为了迈向一个成功的内容管理系统努力的印证。之前,我们向大家介绍过WordPress3.0的新功能,自定义发布内容的类型,这篇文章将继续给大家讲一下WordPress3.0另一个比较突出的新功能,自定义分类法。什么是自定义分类法函数,它的实用*表现在哪里?究竟该如何使用?请看下面的教程: 什么是自定义分类法函数?
wordpress图片不保存到postsWordPress是一个以*客为主的内容管理系统,用于创建网站和*客。在WordPress中添加和管理图片是非常重要的功能,因为图像可以使内容更具吸引力和易读*。 如果你正面临着WordPress图片不保存到Posts的问题,请尝试以下几个解决方法: 1.检查文件夹权限 WordPress将上传的图像保存在wp-content/uploads目录下。所以
要在WordPress文章页添加广告模块,有两种主要方法: 使用插件:您可以安装并启用像Insert Post Ads这样的插件,它允许您在文章和页面的不同位置插入广告。使用插件是一个简单快速的方式来管理广告。 编辑代码:如果您更喜欢不使用插件,可以直接在您主题的functions.php文件中添加代码,以在文章内容的特定段落后插入广告。 使用插件可以方便管理广告
步骤如下: 1、创建一个WordPress主题:需要创建一个完整的WordPress主题。 2、创建一个WordPress账户:需要在WordPress**网站上创建一个账户。 3、加入主题开发人员计划:为了上传主题到**商店,需要加入WordPress主题开发人员计划。 4、创建一个主题存档:登录到WordPress账户,然后单击主题选项卡。 5、上传主题文件:将主题文件上传到主题存档中。 6