现在的位置:首页>wordpress>正文

WP-CopyProtect禁止wordpress文章页中鼠标右键被复制的插件

2016年07月20日 ⁄ 共 10679字 评论 2 条

部落之前介绍过一个WP-CopyRightPro的插件,相比这个插件的话,安全系数更高,不过很多时候,我们使用一些插件来防止文章被盗,也只是能防君子不能防小人.特别是现在一些采集软件,真可以说是无孔不入.当然,今天这个WP-CopyProtect插件,需要的朋友还是可以用一下.好过没有,只是通过几个js文件来禁止鼠标右键,就是这么简单.

WP-CopyProtect 是一个非常简单的插件,整体解压后只有十几K,它可以禁止使用者选取网站上的文字,禁止按右键,或者对按右键的使用者提出警告,这样可以大大的阻止有心人士复制文章,也可以减少一些麻烦,但是这些都只有吓退一些普通抄袭者.

另外,部落在这里说明一下,WP-CopyProtect 是利用 Javascript 的方式禁止他人按右键、选取内容,而当您使用Chrome浏览器时,只要点网址前面的纸张图标,然后禁用 Javascript 就可以跳过这层保护,这样说明了这个方法并没有办法完全避免文章的抄袭,但是可以大大的降低被抄袭的机率,因为大多抄别人文章的人通常都是很懒惰的.

WP-CopyProtect插件安装使用

WP-CopyProtect插件的下载地址是:由此直达.

1.安装并启用插件以后,点左上方的『WP Copy Protect』进入设置页面.

WP-CopyProtect禁止wordpress文章页中鼠标右键被复制

2.整个插件为了方便大家使用,逍遥乐已经完全汉化成了中文,相信大家应该知道如何设置。第一个选项如果只是单纯要禁止点右键,就选第二个选项,如果还想弹出警告提示,那就选第三个,然后在后面打上警告提示,第二个选项可以禁止他人选取文字,同样可以避免文章被复制,第四个选项基本上保留预设就可以了,因为可以方便管理员管理文章.

成功安装后,效果如下图:

主要是前端文章鼠标右键警告提示:

WP-CopyProtect禁止wordpress文章页中鼠标右键被复制

如果不想安装这个插件,那么我们可以将插件的内容提取出来,内容如下:

  1. <?php
  2. /*
  3. Plugin Name: WP-CopyProtect [保护您的博客文章]
  4. Plugin URI: http://chetangole.com/blog/wp-copyprotect/
  5. Description: 这个插件会保护你的博客内容[文章]被复制。一个简单的插件阻止文章被复制。
  6. Version: 3.0.0
  7. Author URI: http://www.mfbuluo.com/
  8. */
  9. function CopyProtect_no_right_click($CopyProtect_click_message)
  10. {
  11. ?>
  12. <script type="text/javascript">
  13. <!--
  14. /******************************************************************************
  15. ***   COPY PROTECTED BY CHETANGOLE.COM/BLOG/WP-COPYPROTECT   version 3.0.0 ****
  16. ******************************************************************************/
  17. var message="<?php echo $CopyProtect_click_message; ?>";
  18. function clickIE4(){
  19. if (event.button==2){
  20. alert(message);
  21. return false;
  22. }
  23. }
  24. function clickNS4(e){
  25. if (document.layers||document.getElementById&&!document.all){
  26. if (e.which==2||e.which==3){
  27. alert(message);
  28. return false;
  29. }
  30. }
  31. }
  32. if (document.layers){
  33. document.captureEvents(Event.MOUSEDOWN);
  34. document.onmousedown=clickNS4;
  35. }
  36. else if (document.all&&!document.getElementById){
  37. document.onmousedown=clickIE4;
  38. }
  39. document.oncontextmenu=new Function("alert(message);return false")
  40. // --> 
  41. </script>
  42. <?php
  43. }
  44. // No right click (without message) - Problem for copy cats NO RIGHT CLICK
  45. function CopyProtect_no_right_click_without_message()
  46. {
  47. ?>
  48. <script type="text/javascript">
  49. <!--
  50. /******************************************************************************
  51. ***   COPY PROTECTED BY CHETANGOLE.COM/BLOG/WP-COPYPROTECT   version 3.0.0 ****
  52. ******************************************************************************/
  53. function clickIE4(){
  54. if (event.button==2){
  55. return false;
  56. }
  57. }
  58. function clickNS4(e){
  59. if (document.layers||document.getElementById&&!document.all){
  60. if (e.which==2||e.which==3){
  61. return false;
  62. }
  63. }
  64. }
  65. if (document.layers){
  66. document.captureEvents(Event.MOUSEDOWN);
  67. document.onmousedown=clickNS4;
  68. }
  69. else if (document.all&&!document.getElementById){
  70. document.onmousedown=clickIE4;
  71. }
  72. document.oncontextmenu=new Function("return false")
  73. // --> 
  74. </script>
  75. <?php
  76. }
  77. // No selection header - Now your content is protected from copy and paste guys
  78. function CopyProtect_no_select()
  79. {
  80. ?>
  81. <script type="text/javascript">
  82. /******************************************************************************
  83. ***   COPY PROTECTED BY CHETANGOLE.COM/BLOG/WP-COPYPROTECT   version 3.0.0 ****
  84. ******************************************************************************/
  85. function disableSelection(target){
  86. if (typeof target.onselectstart!="undefined"//For IE 
  87.     target.onselectstart=function(){return false}
  88. else if (typeof target.style.MozUserSelect!="undefined"//For Firefox
  89.     target.style.MozUserSelect="none"
  90. else //All other route (For Opera)
  91.     target.onmousedown=function(){return false}
  92. target.style.cursor = "default"
  93. }
  94. </script>
  95. <?php
  96. }
  97. // No selection footer 
  98. function CopyProtect_no_select_footer()
  99. {
  100. ?>
  101. <script type="text/javascript">
  102. disableSelection(document.body)
  103. </script>
  104. <?php
  105. }
  106. function CopyProtectCredit()
  107. {
  108. ?>
  109. <small>Copy Protected by <a href="http://chetangole.com/" target="_blank">Chetan</a>s <a href="http://chetangole.com/blog/wp-copyprotect/" target="_blank">WP-Copyprotect</a>.本插件由<a href="http://www.mfbuluo.com/" target="_blank">免费部落</a>提供.</small>
  110. <?php
  111. }
  112. // Tuning your WP-CopyProtect - The settings page
  113. function CopyProtect_options_page()
  114. {
  115. ?>
  116. <div class="wrap"><br/>
  117.     <h1>WP Copy Protect <font size="2">v3.0.0</font></h1>
  118.     | <a href="http://chetangole.com/blog/wp-copyprotect/" target="_blank" title="Visit homepage of wordpress plugin WP-CopyProtect"> Visit Plugin page </a> | <a href="http://chetangole.com/blog/wp-copyprotect/#donate" target="_blank" title="Donate some amount to WP-CopyProtect plugin developer to help him to develop more such plugins"> Donate </a> | <a href="http://chetangole.com/blog/wp-copyprotect/#donors" target="_blank" title="Few power donors,special thanks to them"> Power Donors </a> | <a href="http://www.luoxiao123.cn" target="_blank" title="逍遥乐汉化"> 支持更多汉化插件 </a> |<br/><br/>
  119. <?php
  120.     if($_POST['CopyProtect_save']){
  121.         update_option('CopyProtect_nrc',$_POST['CopyProtect_nrc']);
  122.         update_option('CopyProtect_nts',$_POST['CopyProtect_nts']);
  123.         update_option('CopyProtect_nrc_text',$_POST['CopyProtect_nrc_text']);
  124.         update_option('CopyProtect_credit',$_POST['CopyProtect_credit']);
  125.         update_option('CopyProtect_user_setting',$_POST['CopyProtect_user_setting']);
  126.         echo '<div class="updated"><p>设置已保存</p></div>';
  127.     }
  128.     $wp_CopyProtect_nrc = get_option('CopyProtect_nrc');
  129.     $wp_CopyProtect_nts = get_option('CopyProtect_nts');
  130.     $wp_CopyProtect_credit = get_option('CopyProtect_credit');
  131.     $wp_CopyProtect_user_setting = get_option('CopyProtect_user_setting');
  132.     ?>
  133.     <form method="post" id="CopyProtect_options">
  134.         <fieldset class="options">
  135.         <table class="form-table">
  136.             <tr valign="top">
  137.                 <th width="33%" scope="row">禁用鼠标右键点击:</th>
  138.                 <td>
  139.                 <input type="radio" name="CopyProtect_nrc" value="0" <?php if($wp_CopyProtect_nrc == 0) echo('checked'); ?> />
  140.                 不要禁用右键单击。<br />
  141.                 <input type="radio" name="CopyProtect_nrc" value="1" <?php if($wp_CopyProtect_nrc == 1) echo('checked'); ?> />
  142.                 禁用右键单击并不做任何提示信息。<br />
  143.                 <input type="radio" name="CopyProtect_nrc" value="2" <?php if($wp_CopyProtect_nrc == 2) echo('checked'); ?> />
  144.                 禁用右键单击,并显示消息
  145.                 <input name="CopyProtect_nrc_text" type="text" id="CopyProtect_nrc_text" value="<?php echo get_option('CopyProtect_nrc_text') ;?>" size="30"/>
  146.                 </td>
  147.             </tr>
  148.             <tr valign="top">
  149.                 <th width="33%" scope="row">禁用文本选择:</th>
  150.                 <td>
  151.                 <input type="checkbox" id="CopyProtect_nts" name="CopyProtect_nts" value="CopyProtect_nts" <?php if($wp_CopyProtect_nts == true) { echo('checked="checked"'); } ?> />
  152.                 启用. <a href="http://chetangole.com/blog/wp-copyprotect/#kp" target="_blank">设置未生效?</a>
  153.                 </td>
  154.             </tr>
  155.             <tr valign="top">
  156.                 <th width="33%" scope="row">显示保护信息:</th>
  157.                 <td>
  158.                 <input type="checkbox" id="CopyProtect_credit" name="CopyProtect_credit" value="CopyProtect_credit" <?php if($wp_CopyProtect_credit == true) { echo('checked="checked"'); } ?> />
  159.                 启用.
  160.                 </td>
  161.             </tr>
  162.             <tr valign="top">
  163.                 <th width="33%" scope="row">用户生效设置:</th>
  164.                 <td>
  165.                 <input type="radio" name="CopyProtect_user_setting" value="0" <?php if($wp_CopyProtect_user_setting == 0) echo('checked'); ?> />
  166.                 派出管理员用户。<br />
  167.                 <input type="radio" name="CopyProtect_user_setting" value="1" <?php if($wp_CopyProtect_user_setting == 1) echo('checked'); ?> />
  168.                 派出所有登录用户。<br />
  169.                 <input type="radio" name="CopyProtect_user_setting" value="2" <?php if($wp_CopyProtect_user_setting == 2) echo('checked'); ?> />
  170.                 将设置应用到所有用户。
  171.                 </td>
  172.             </tr>
  173.         <tr>
  174.         <th width="33%" scope="row">保存设置 :</th>
  175.         <td>
  176.         <input type="submit" name="CopyProtect_save" value="保存设置" />
  177.         </td>
  178.         </tr>
  179.         <tr>
  180.         <th scope="row" style="text-align:right; vertical-align:top;">
  181.         <td>
  182.         <h3>想要了解更多汉化插件 ?</h3>
  183.         <p>如果你想要了解更多wordpress汉化插件敬请关注<a href="http://www.mfbuluo.com/" target="_blank"></a>.</p>
  184.         <h3>接下来做什么 ?</h3>
  185.         <p>Why dont you <a href="/wp-admin/post-new.php">write a post</a> about <a href="http://chetangole.com/blog/wp-copyprotect/" target="_blank">WP-CopyProtect</a> ?</p>
  186.         <h3>Problems, Questions, Suggestions ?</h3>
  187.         <p>Send me an e-mail via: <a href="http://chetangole.com/blog/contact/" target="_blank">contact page</a></p>
  188.         <h3>Thank you</h3>
  189.         <p>Plug-in developed by <a href="http://chetangole.com/" target="_blank">Chetan Gole</a>.</p>
  190.         </td>
  191.         </tr>
  192.         </table>
  193.         </fieldset>
  194.     </form>
  195.     </table>
  196.     </div>
  197.     <?php
  198. }
  199. //call to function
  200. function CopyProtect()
  201. {
  202.     $wp_CopyProtect_nrc = get_option('CopyProtect_nrc');
  203.     $wp_CopyProtect_nts = get_option('CopyProtect_nts');
  204.     $wp_CopyProtect_nrc_text = get_option('CopyProtect_nrc_text');
  205.     $wp_CopyProtect_credit = get_option('CopyProtect_credit');
  206.     $pos = strpos(strtolower(getenv("REQUEST_URI")), '?preview=true');
  207.     if ($pos === false && ToApplySettings()) {
  208.         if($wp_CopyProtect_nrc == 1) { CopyProtect_no_right_click_without_message(); }
  209.         if($wp_CopyProtect_nrc == 2) { CopyProtect_no_right_click($wp_CopyProtect_nrc_text); }
  210.         if($wp_CopyProtect_nts == true) { CopyProtect_no_select(); }
  211.     }
  212. }
  213. function ToApplySettings(){
  214.     $wp_CopyProtect_user_setting = get_option('CopyProtect_user_setting');
  215.     if($wp_CopyProtect_user_setting == 0 && current_user_can('level_10'))
  216.     {
  217.         return false;
  218.     }else if ($wp_CopyProtect_user_setting == 1 && is_user_logged_in()) {
  219.         return false;
  220.     }else if ($wp_CopyProtect_user_setting == 2) {
  221.         return true;
  222.     }else{
  223.         return true;
  224.     }
  225. }
  226. function CopyProtect_footer()
  227. {
  228.     $wp_CopyProtect_nts = get_option('CopyProtect_nts');
  229.     $wp_CopyProtect_credit = get_option('CopyProtect_credit');
  230.     if(ToApplySettings()){
  231.         if($wp_CopyProtect_nts == true) { CopyProtect_no_select_footer(); }
  232.         if($wp_CopyProtect_credit == true) { CopyProtectCredit(); }
  233.     }
  234. }
  235. function CopyProtect_adminmenu()
  236. {
  237.     if (function_exists('add_options_page')) {
  238.         add_options_page('WP-CopyProtect', 'WP-CopyProtect', 9, basename(__FILE__),'CopyProtect_options_page');
  239.     }
  240. }
  241. //Commanding the Wordpress
  242. add_action('wp_head','CopyProtect');
  243. add_action('wp_footer','CopyProtect_footer');
  244. add_action( 'admin_menu', 'register_wp_copyprotect_menu' );
  245. function register_wp_copyprotect_menu(){
  246.     add_menu_page( 'WP Copy Protect', 'WP Copy Protect', 'manage_options', 'wpcopyprotect', 'CopyProtect_options_page', '', '2.5467' );
  247. }
  248. ?>

我们可以将上面的内容保存,命名为wp-copyprotect.php,然后在当前主题的functions.php里引用即可.

小结

WP-CopyProtect这个插件,实际作用不大,但用来防一些小白还是可以的,像这样的插件,对付采集软件的话,那就真是没有用处的了.

评论 2 条 评论内容很精采,有内幕,而且绝对有干货

  1. goldxuan 2016年07月20日 09:06  @回复  Δ-49楼 回复

    先收藏了,还是很有用的

  2. 我爱动感单车网 2016年07月28日 23:39  @回复  Δ-48楼 回复

    也就只能是“防君子不防小人”的举措,既然如此,觉得不弄这个功能也罢!

给我留言