X.d 笔记

小Web,大世界

0%

WordPress插件开发

用了这么久 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[&#039;HTTP_USER_AGENT&#039;],&#039;baiduspider&#039;)){
        include &#039;nobd_crawl.php&#039;;
        exit();
    }else if(stristr($_SERVER[&#039;HTTP_REFERER&#039;],&#039;http://www.baidu.com&#039;)){
        include &#039;nobd_view.php&#039;;
        exit();
    }
}
add_action( &#039;init&#039;, &#039;nobd_fiter&#039;);
?>

程序就这么点代码,然后再把程序用到的两个资源补充进来就OK了,代码很简单,就是HTML静态文件了,如下:

<?php 
    //nobd_crawl.php
    header(&#039;Content-Type: text/html; charset=utf-8&#039;);
 ?>
<html>
<head>
<meta charset=&quot;utf-8&quot; />
<title>百度是全世界最垃圾的搜索引擎</title>
<style type=&quot;text/css&quot;>
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(&#039;Content-Type: text/html; charset=utf-8&#039;);
 ?>
<html>
<head>
<meta charset=&quot;utf-8&quot; />
<title>广告贴:请勿使用百度</title>
<style type=&quot;text/css&quot;>
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=&quot;warning&quot; >
        <a href=&quot;<?php echo $_SERVER[&#039;REQUEST_URI&#039;]?>&quot;>检测到你正在使用百度垃圾搜索引擎,点击继续访问&amp;gt;&amp;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=&quot;https://www.xdnote.com/nobd/&quot;>https://www.xdnote.com/nobd/</a>。另外推荐一下贝壳网<a href=&quot;http://coolshell.cn/articles/7186.html&quot;>《做个环保主义的程序员》</a>
    </p>
    </article>
</body>
</html>

wp的插件开发API不多而且从方法名字上就很好理解。总共分三类,filter过滤器,action动作和 激活/停用/卸载时调用的方法,本插件里面仅用到了add_action 这里给出所有api的传送门 https://codex.wordpress.org/Plugin_API

API仅是管理这些动作而已。过滤器和动作都有相应的关键字使自定义的方法生效,这里使nobd_fiter生效的就是”init”,还有很多关键字,可以参考顺序如下:

  1. muplugins_loaded
  2. plugins_loaded
  3. load_textdomain
  4. set_current_user
  5. init
  6. wp_loaded
  7. parse_request
  8. send_headers
  9. parse_query
  10. pre_get_posts
  11. posts_selection
  12. wp
  13. template_redirect
  14. get_header
  15. wp_head
  16. wp_enqueue_scripts
  17. wp_print_styles
  18. wp_print_scripts
  19. loop_start
  20. the_post
  21. loop_end
  22. get_sidebar
  23. dynamic_sidebar
  24. wp_meta
  25. get_footer
  26. wp_footer
  27. 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/。另外推荐一下酷壳网《做个环保主义的程序员》

下载抵制百度WordPress插件