2

Wordpress ブログの特定の投稿へのすべての訪問を登録したいと考えています。収集されたデータは、このブログやその他の情報源の情報を収集する外部サーバーに送信されます。

これまで、この問題を解決する私の方法はフックを使用してwp_footer、非同期の JSONP 呼び出しをリモート サーバーに追加することでした。ただし、この方法では、生成された HTML に少しオーバーヘッドが追加され、ユーザーが JavaScript を有効にしているかどうかによって異なります。

今、私は同じことをしようとしていますが、curl または同様のライブラリを使用して、php コードを介して外部呼び出しを行っています。ここでの問題は、ページ生成時間に遅延が追加されることであり、ユーザー エクスペリエンスに悪影響を与える可能性があります。コンテンツが送信され、HTTP 接続が閉じられた後にこれを行う良い方法はありますか? Wordpress フックはshutdown有効でしょうか?

4

1 に答える 1

1

これが私のために働いているものです。WordPress の設定に依存したくない場合は、PHP にはネイティブのシャットダウン機能があることに注意してください。senting-server.com から、次のようなことができます。

function do_php_shutdown_function(){
    //do your request here
    $param1 = urlencode($param1);
    $param2 = urlencode($param2);
    $request = "http://external-server.com/script.php?param1={$param1}&param2={$param2}";
    get_headers($request);
}
register_shutdown_function( 'do_php_shutdown_function');

external-server.com の script.php では、次のようになります。

header("Access-Control-Allow-Origin: http://sending-server.com");
header("HTTP/1.0 204 No Content");
$param1 = urldecode($_GET['param1']);
$param2 = urldecode($_GET['param2']);
//do stuff

ヘッダー("HTTP/1.0 204 No Content"); すぐに接続を閉じる必要がありますが、スクリプトは引き続き実行されます。詳細については、次を参照してください:応答を待たずに PHP から HTTP 要求を送信しますか?

于 2015-11-06T13:52:40.873 に答える