WordPressのping制御プラグイン

2007/11/11 | SNS/CMS/ブログ

もう一個WordPressのプラグインを作った。
今、記事投稿の自動化プログラムを作成している。このプログラム自体はXML-RPCを使っていて、基本的に以前から使用している機能の寄せ集めなのだが、いろいろ調べていくと・・・、XML-RPCによる記事投稿の際でも、その都度更新pingを送信してくれることがわかった。
これはこれで便利なのだが、1度に10件プログラムで記事投稿すると10回ping送信してしまうことになる。下手をするとpingスパムととられかねない(こういう細かいところはブログツールによって使用が違うようだ)。
そこである一定時間内であればping送信を実行しないよう制御するWordPressプラグインを作成した。ダウンロードは以下のリンクからどうぞ。

CWPC control sending ping plugin for WordPresspso

<?
/*
Plugin Name: CW ping controller
Plugin URI: http://php.tekmemo.com/
Description: Control the continuous sending of ping. This program prohibits sending ping in the specified interval.
Author: kaorun
Author URI: http://php.tekmemo.com/
Version: alpha
*/

  class cwpc
  {
    var $lastsend;
    var $interval;
    
    function cwpc()
    {
      $this->lastsend=intval(get_option(‘cwpc_lastsend’));
      $this->interval=intval(get_option(‘cwpc_interval’));
    }
    
    function process($postId=0)
    {
      $now=intval(date(‘U’));
      if($now > $this->lastsend + $this->interval){
        generic_ping($postId);
        update_option(‘cwpc_lastsend’,$now);
      }
      return $postId;
    }
    
    function admin()
    {
      add_options_page(‘options-general.php’, ‘CWPC’, 8, basename(__FILE__), array(&$this,’processAdmin’));
    }
    
    function processAdmin()
    {
      add_option(‘cwpc_lastsend’,’0′);
      add_option(‘cwpc_interval’,’60’);
      if(strtolower($_SERVER[‘REQUEST_METHOD’])==’post’){
        //update_option(‘cwpc_lastsend’,’0′);
        update_option(‘cwpc_interval’,intval($_POST[‘cwpc_interval’]));
      }
      $values=array();
      $values[‘cwpc_interval’]=get_option(‘cwpc_interval’);
      
      $cwpcOutput=”;
      $cwpcOutput.='<div class=”wrap”>';
      $cwpcOutput.='<h2>CWPC setting</h2>';
      $cwpcOutput.='<form name=”form1″ method=”post” action=”‘.$_SERVER[‘PHP_SELF’].’?page=cwpc.php”>';
      $cwpcOutput.='<table cellspacing=”2″ cellpadding=”5″ class=”editform”>';
      $cwpcOutput.='<tr>';
      $cwpcOutput.='<td>Seconds to prohibit the sending ping</td>';
      $cwpcOutput.='<td><input type=”text” name=”cwpc_interval” value=”‘.$values[‘cwpc_interval’].'” size=”10″></td>';
      $cwpcOutput.='</tr>';
      $cwpcOutput.='</table>';
      $cwpcOutput.='<input type=”submit” value=”submit” />';
      $cwpcOutput.='</form>';
      $cwpcOutput.='</div>';
      echo $cwpcOutput;
    }
  }
  
  $cwpcObj=& new cwpc;
  add_action(‘admin_menu’,  array(&$cwpcObj,’admin’));
  remove_action(“publish_post”, “generic_ping”);
  add_action(‘publish_post’,  array(&$cwpcObj,’process’), 2);

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net