web-dev-qa-db-ja.com

WordPressのコールバックURL

私はこのサービス OnWebChange を使用して、Webサイトがいつ変更されたかを監視し、それに応じて私のものを変更します。それはHTTP POSTメソッドで私のウェブサイトのURLへのURLコールバックを通して私に通知するでしょう。それらのPOSTを「キャッチ」するために使用するツール/ API /プラグインは何ですか? POSTが他のWebサイトから来たものである場合は、たくさんのことを調べてPOSTの作成方法だけを見つけて、それらを "キャッチ"しないでください。 Apacheにアクセスできれば、POSTをダンプするためのモジュールをインストールできますが、それにアクセスできないWordpressを使用しています。

2
user2879175

それは非常に簡単です、ちょうどあなたのウェブサイトのホームURLを使用してください:)

その後、ページがHTTPメソッドPOSTを介してロードされたときにアクションを起動し、コールバックでフックします。

add_action( 'wp_loaded', function() {
   if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
      // fire the custom action
      do_action('onchangeapi', new PostListener($_POST));
   }
} );

そして今、リスナークラス

class PostListener {

   private $valid = false;

   /**
    * @param array $postdata $_POST array
    */
   public function __construct(array $postdata) {
       $this->valid = $this->validatePostData($postdata);
   }

   /**
    * Runs on 'onchangeapi' action
    */
   public function __invoke() {
      if ($this->valid) {
          // do whatever you need to do 
          exit();
      }
   }

   /**
    * @param array $postdata $_POST array
    * @return bool
    */
   private function validatePostData(array $postdata) {
      // check here the $_POST data, e.g. if the post data actually comes
      // from the api, autentication and so on
   } 
}
2
gmazzap