web-dev-qa-db-ja.com

プラグインの有効化時に、適切な転送メカニズムを確認するにはどうすればよいですか?

他の場所と通信するプラグインの場合は、代わりに wp_remote_post および wp_remote_get を使用することになっています。 PHPのCurlライブラリ

さて、ブログのPHP /ホストOSに適切な転送メカニズムがインストールされているかどうかをテストするための迅速で適切な方法はありますか?つまり、私はテスト用のPOSTを試みることができたのですが、WPにはテスト可能なより高速で高速なメカニズムがあるのではないかと考えました。次のことを行うことは受け入れられません。

if (!function_exists('curl_exec')) {
    wp_die('The CURL API is not installed with PHP. You cannot use this plugin without that. Ask your web hosting provider to install it.');
}
1
Volomike

私はプラグインをそのように死なせないでしょう。あなたが電話をかけるかwp_remote_(post|get)に頼る必要があるたびにcURLをチェックするだけです(例えばチェックを引き受けるラッパー関数を書いて欲しいデータ/ヘッダを送る)。

しかし、本当にcURLがインストールされていない場合にプラグインを本当に無効にしたい場合は、 アクティベーションフック を使用してcurl_exec関数をチェックして無効にすることができます。そうでなければプラグイン。

<?php
register_activation_hook(__FILE__, 'wpse51312_activation');
function wpse51312_activation()
{
    if(!function_exists('curl_exec'))
    {
        // Deactivate the plugin
        deactivate_plugins(__FILE__);

        // Show the error page, Maybe this shouldn't happen?
        wp_die(
            __('You must enable cURL support to use INSERT PLUGIN NAME'),
            __('Error')
        );
    }
}

それが価値があるもののために、私はそれが利用可能であるならHTTP APIがcURLを使用しようとすると信じます。

3
chrisguitarguy