在开始之前,需要注意三件事情
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的功能。但面对众多的插件,我们需要哪些、不需要哪些呢?下面是我安装插件的一些经验介绍,仅供参考。
1.Akismet
在我的 WordPress 3.01个人使用记录这篇*文中已经提及该插件,这里再介绍下。Akismet是Automattic公司的一个专注于剿杀垃圾评论的产品,由于当前垃圾评论泛滥,启用该插件是非常必要的,因此它已被集成到了Wordpress系统中。
该插件不需要你设置什么,因为它的垃圾过滤是通过Akismet服务器完成的,你所要做的是启用该插件,并在工具– Akismet设置里申请一个Key,并提交。
2. Google XML Sitemaps
Sitemaps即网站地图。Google XML Sitemaps插件是WordPress**推荐的插件。当你发表或修改*客内容后,它将为你的WordPress*客自动创建/更新Google Sitemap格式的XML,它支持所有的WordPress发表的内容,以及自定制。注意其这条提示:如果你 Blog或服务器更新了某些东西,你应该手动重建sitemap。不过在下面“基本设置–建立模式”里可以设置为“在你更改了 Blog内容后重建 sitemap”,这样就不需要手工重建了,默认也是选中的。你还可以设置更新通知、sitemap内容、日志优先级、评论等其它内容。
Sitemap是所有主要的搜索引擎支持的协议,创建并提交Sitemap有助于提高搜索引擎收录率,包括搜索引擎链接爬取过程都无法找到的网址。Sitemap还会向搜索引擎提供有关您网站的其他信息。Sitemap可帮助搜索引擎更及时地抓取网站内容,但不能保证 Sitemap中的网址会被 Google索引。该插件在设置–XML Sitemap。
3. All in one seo pack
颇具争议的一款软件,一方面有人说其强大的功能,一方面有人说其严重的负面影响。我觉得在对修改主题有了一定了解后,停用该插件,自己做点SEO比较合适。该插件的*主要功能是设置标题的格式、添加keywords、description标签。注意在发布文章时,要在其设置区域设置文章标题、描述、关键词等内容。也有WP友推荐Platinum SEO Pack这款替代型插件。SEO Title Tag也是一款seo插件,可以让每篇文章都含有相应的关键词和描述。
关于为什么要停用All in one seo pack,停用后怎么自己做SEO,以及我个人遇到的问题及解决方法,请看我的另一篇文章:关于停用All in one seo pack后分类页面description描述出错的问题
4. WordPress Database Backup
众多*友认为必备的一款插件,可以非常灵活的实现*客数据库的备份。你可以把备份保留在服务器,也可以下载到本地,还可以直接发送到你的邮箱。此外,还可以设置定时备份:按时、天、周备份,并发送到你的邮箱。
5. Simple tags
Simple Tags是一个Tags管理插件,可以实现自动推荐标签、标签管理(重命名、删除、合并、添加等)、批量编辑等。
6.WP-Postviews
日志浏览统计插件,可以统计每篇日志被浏览的次数,这样就可以实现*客日志流量 Top 10等功能,非常方便和强大。**版的 Postviews还支持缓存,在你的*客使用 WP Super Cache等缓存插件缓存之后,它照样还可以进行统计。该插件需要你对主题代码进行修改。安装后,在“设置> Postviews配置”。
7.Pagenavi
由于Wordpress自带的翻页非常简单,所以一般都选择使用一款翻页插件。Pagenavi是**度很高的翻页插件,同类插件还有pagebar。可以自动插入也可以手动插入,不过有些主题中已经自带或集成了翻页功能,要注意避免冲突。
8. My Page Order、My Category Order、My Link Order
分别是页面排序、分类排序、链接排序插件,比较简单。Wordpress没有自带这些排序功能,故使用这三个插件还是有必要的。当你页面、分类、链接已经固定后,你就可以禁用这三个插件了。
9.Subscribe to Comments
Subscribe to Comments是一个非常受欢迎的插件,它使得评论者可通过 e-mail来接收文章有新评论的提醒。这个插件包括功能完整的评论订阅管理器,评论者可以取消对某文章的订阅,屏蔽所有订阅的提醒,甚至包括改变接收提醒信息的 email地址,可以使得你的读者坚持参加他感兴趣的话题来增加你的*客的社区化!在“设置-Subscribe to Comments”里进行设置,包括改变提示文本等。
工具:WordPress
步骤:
1、进入WordPress管理后台,点击左侧的“插件”按钮,然后点击“安装插件”,进入在线安装插件页面,在搜索框中输入你想要的插件名称。点击搜索插件按钮。
2、到合适的插件之后,点击“现在安装”。
3、系统会自动下载安装包-解压安装包-安装插件,待系统系统安装完成之后,点击“启用插件”就可以开始使用了。
用WordPress建站的时候,出于安全,一般是不能在文章及页面(别告诉我,你连文章和页面都分不清)执行PHP代码的。当然,有时候我们可能有需要这样的功能,但不能直接去修改WordPress的PHP文件,这样不仅效率很低,而且不适合经常改动。如果你经常这么做,我只有两个字:佩服! 今天就分享两个插件来解决如何在WordPress文章和页面运行PHP代码这个问题。 PHP Code for
如果不想通过代码实现**可选文章和页面的标题,可以安装并** WordPress Hide Title plugin插件 ,在相应页面或文章的编辑窗口中,点击WordPress管理下的文章和页面菜单下需要编辑的项目即可。在编辑窗口下,有一个**标题的自定义区块: 你要做的就是选中这个复选框并单击更新或发布按钮,插件将**单次PV上的标题。这意味着,主页或其他分类页面上仍然会显示
如何登录FTPURL 你可以通过网站或者软件登录FTP。ftp登录软件有很多,比如cuteFTP,FlashFXP等。 /p> p style="text-indent:2em;">我们可以通过网站登录来实现。 /p> p style="text-indent:2em;">1.打开浏览器,在地址栏输入FTP:/(FTP网站ip)。如果服务器设置了访问权限,将弹出登录对话框,要求输入用户名和密码
wordpress图片不保存到postsWordPress是一个以*客为主的内容管理系统,用于创建网站和*客。在WordPress中添加和管理图片是非常重要的功能,因为图像可以使内容更具吸引力和易读*。 如果你正面临着WordPress图片不保存到Posts的问题,请尝试以下几个解决方法: 1.检查文件夹权限 WordPress将上传的图像保存在wp-content/uploads目录下。所以