用了这么久 Wordpress 忽然想自己开发一个插件,简单看了下教程后,开工。
介绍一下插件结构,就是一个php文件就可以了,就算是完全没有内容都没关系,写一点说明,把这个php文件放在放在wp-content/plugins目录下,就变成了插件比如我开发一个抵制百度插件,就一个php文件就够了。
<?php
/*
Plugin Name: 抵制百度
Plugin URI: https://www.xdnote.com/do-not-use-baidu
Description: 注意:本插件会抵制百度,请看清功能后再安装使用。如果你的博客需要百度流量就不要装了! 功能点如下:1.当百度蜘蛛抓取时,自动响应一个抵制百度的页面。2.当其它用户通过百度搜索点到博客页面时,显示一个抵制百度页面。想修改抵制内容可以直接对插件进行编辑,HTML格式即可。
Version: 0.1
Author: xdnote.com
Author URI: https://www.xdnote.com/do-not-use-baidu
*/
?>
把这个文件保存为php,传到plugins目录后,到wp后台插件管理页面,就可以看到插件了,点一下激活插件就生效。
当然这是没什么功能的,如果你的文件较多,你可以新建一个目录,目录名为你插件php文件的名字,比如我上面的php命名为nobd.php,那我的文件夹名就叫nobd,煞后我就补全代码,很简单的8行代码,很强大的功能。
<?php
function nobd_fiter(){
if(stristr($_SERVER['HTTP_USER_AGENT'],'baiduspider')){
include 'nobd_crawl.php';
exit();
}else if(stristr($_SERVER['HTTP_REFERER'],'http://www.baidu.com')){
include 'nobd_view.php';
exit();
}
}
add_action( 'init', 'nobd_fiter');
?>
程序就这么点代码,然后再把程序用到的两个资源补充进来就OK了,代码很简单,就是HTML静态文件了,如下:
<?php
//nobd_crawl.php
header('Content-Type: text/html; charset=utf-8');
?>
<html>
<head>
<meta charset="utf-8" />
<title>百度是全世界最垃圾的搜索引擎</title>
<style type="text/css">
article{
width: 600px;
margin: 30px auto;
font-family: 华文黑体,微软雅黑;
}
</style>
</head>
<body>
<article>
<h1>百度是全世界最垃圾的搜索引擎</h1>
<p>
百度是一个充满假广告,假药,假公司而且还专业帮助这些假货们推广的网站。如果你经常使用Baidu和任何一个其它搜索引擎,对比体验就感觉到了。经常是东西搜不到,垃圾广告一大堆,最可恨的是垃圾广告还搞个权威网站的样式,对互联网知识不太了解的人因baidu受骗的经历屡见不鲜。
</p>
</article>
</body>
</html>
<?php
//nobd_view.php
header('Content-Type: text/html; charset=utf-8');
?>
<html>
<head>
<meta charset="utf-8" />
<title>广告贴:请勿使用百度</title>
<style type="text/css">
body{
margin:0;
}
article{
width: 600px;
margin: 30px auto;
font-family: 华文黑体,微软雅黑;
}
.warning{
background: none repeat scroll 0 0 #FFFBCF;
border-bottom: 1px solid #F0ECCF;
font-size: 16px;
text-align: center;
height:80px;
line-height:80px;
}
a{
color:#0000CC;
}
</style>
</head>
<body>
<div class="warning" >
<a href="<?php echo $_SERVER['REQUEST_URI']?>">检测到你正在使用百度垃圾搜索引擎,点击继续访问&gt;&gt;</a>
</div>
<article>
<h1>广告贴:请勿使用百度</h1>
<p>
百度是一个充满假广告,假药,假公司而且还专业帮助这些假货们推广的网站。如果你经常使用Baidu和任何一个其它搜索引擎,对比体验就感觉到了。经常是东西搜不到,垃圾广告一大堆,最可恨的是垃圾广告还搞个权威网站的样式。
</p>
<p>
互联网上像各位意识高的技术人士们毕竟只有一少部分,不少涉网不深的朋友被Baidu骗后,你们“高手”还去骂人SB,可有想到受骗者的心情。
</p>
<p>
即使这些被骗的人与我无关,我也不愿使用。搜东西那叫一个不准确,搜到的东西排前面的大多都是商业垃圾站,要么就是自家或给百度钱的网站,毫无公平性可言,经常想要的结果排不到前10或更低,可有想过你在找东西时在百度浪费的时间?可以经常使用GOOGLE与百度对比一下,用一段时间就会体会到天地区别了。
</p>
<p>
标题叫广告贴,但我不是在做广告,虽然推荐了Google,鄙视了下Baidu,但也是个人的心得与建议,并非广告和诬蔑,你可以鄙视我,我无所谓~。
</p>
<p>
最后,本人把这个反baidu的功能做成了wordPress插件,功能很简单。各位有wp博客还想屏蔽百度的可以去下载插件,地址:<a href="https://www.xdnote.com/nobd/">https://www.xdnote.com/nobd/</a>。另外推荐一下贝壳网<a href="http://coolshell.cn/articles/7186.html">《做个环保主义的程序员》</a>
</p>
</article>
</body>
</html>
wp的插件开发API不多而且从方法名字上就很好理解。总共分三类,filter过滤器,action动作和 激活/停用/卸载时调用的方法,本插件里面仅用到了add_action 这里给出所有api的传送门 https://codex.wordpress.org/Plugin_API
API仅是管理这些动作而已。过滤器和动作都有相应的关键字使自定义的方法生效,这里使nobd_fiter生效的就是”init”,还有很多关键字,可以参考顺序如下:
- muplugins_loaded
- plugins_loaded
- load_textdomain
- set_current_user
- init
- wp_loaded
- parse_request
- send_headers
- parse_query
- pre_get_posts
- posts_selection
- wp
- template_redirect
- get_header
- wp_head
- wp_enqueue_scripts
- wp_print_styles
- wp_print_scripts
- loop_start
- the_post
- loop_end
- get_sidebar
- dynamic_sidebar
- wp_meta
- get_footer
- wp_footer
- shutdown
本例中的init是页面初始化的时候处罚,由于有个exit所以就不会往下进行剩余的流程了。三个php写好后,建一个nobd文件夹(与主程序nobd.php命名相同),使用压缩工具,打个zip就可以了,然后在wp-admin里面的插件管理里面上传这个zip包。
当然,对于本功能简单的插件,你完全可以用一个php搞定,不用文件夹也不用打包,你可以把三个php合为1个,然后直接上传到你的FTP上的wp-content/plugins/ 目录下面,然后在插件页面刷新一下,就可以发现插件已经装好了
本贴为广告贴,推广不使用Baidu的同时,发一个轻量级的wp插件开发袖珍教程。推荐大家特别是技术界的人们都使用Google,秒杀百度。
插件全文:
广告贴:请勿使用百度
百度是一个充满假广告,假药,假公司而且还专业帮助这些假货们推广的网站。如果你经常使用Baidu和任何一个其它搜索引擎,对比体验就感觉到了。经常是东西搜不到,垃圾广告一大堆,最可恨的是垃圾广告还搞个权威网站的样式。
互联网上像各位意识高的技术人士们毕竟只有一少部分,不少涉网不深的朋友被Baidu骗后,你们“高手”还去骂人SB,可有想到受骗者的心情。
即使这些被骗的人与我无关,我也不愿使用。搜东西那叫一个不准确,搜到的东西排前面的大多都是商业垃圾站,要么就是自家或给百度钱的网站,毫无公平性可言,经常想要的结果排不到前10或更低,可有想过你在找东西时在百度浪费的时间?可以经常使用GOOGLE与百度对比一下,用一段时间就会体会到天地区别了。
标题叫广告贴,但我不是在做广告,虽然推荐了Google,鄙视了下Baidu,但也是个人的心得与建议,并非广告和诬蔑,你可以鄙视我,我无所谓~。
最后,本人把这个反baidu的功能做成了wordPress插件,功能很简单。各位有wp博客还想屏蔽百度的可以去下载插件,地址:https://www.xdnote.com/do-not-use-baidu/。另外推荐一下酷壳网《做个环保主义的程序员》