Asynchroner PHP-Code im WP-Plugin

Lesezeit: 2 Minuten

Dieser Codeblock muss mit dem Rest des Codes asynchron sein. Es wird die WP-Posts sammeln und eine Post-Anfrage an meine URL senden. Das Plugin sollte asynchron laufen und die Funktion der WordPress-Seite nicht beeinträchtigen.

for ($x=0; $x<=n; $x++) {
$data = posts[$x];
$ch = curl_init('http://myurl.com/');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'ACCEPT: application/json',
'Content-Length: ' . strlen($data))
);

$result = curl_exec($ch);
curl_close($ch);
}

  • Wenn Sie asynchron wollen, müssen Sie wahrscheinlich mit Node.js oder einer anderen Alternative gehen. PHP ist nicht freundlich mit asynchronen. Eigentlich die einzige Alternative.

    – Brenda

    9. November 2014 um 9:26 Uhr

  • Sie müssen dieses Plugin für WordPress selbst erstellen und es Bloggern geben, also haben Sie keine andere Option als PHP.

    – Ahwan Kumar

    9. November 2014 um 9:36 Uhr

  • Auch hier ist PHP entsetzlich An dieser Stelle wird alles, was Sie finden, eine hackige Problemumgehung sein – aber vielleicht hilft diese oder diese Frage.

    – Brenda

    9. November 2014 um 9:41 Uhr

Der richtige Weg, asynchrone Anfragen in WordPress zu verarbeiten, ist die Verwendung von WP-Cron zum Planen eines Ereignisses. Sie können es entweder so planen, dass es einmal oder in einem Intervall ausgeführt wird. Sehen Sie sich einige Anleitungen zur Einrichtung an hier. Die beiden Hauptfunktionen zum Auschecken sind wp_schedule_event() und wp_schedule_single_event().

Beachten Sie jedoch Folgendes: Da Ihr Code nur ausgeführt wird, wenn eine Anfrage vorliegt, ist es bei geringem Datenverkehr möglich, dass Ihr geplantes Ereignis nicht wie erwartet ausgeführt wird. Ich habe auf meiner Website einen Artikel darüber geschrieben, wie Sie crontab in Verbindung mit WP-Cron verwenden können, um Ereignisse genauer zu planen: http://justinsilver.com/technology/wordpress/disable-wp-cron-wordpress/.

  • Aus dem Beitrag: The way that I handle WP-Cron on my sites is to disable it entirely by setting the DISABLE_WP_CRON constant to false in wp-config.php.… Ich denke, Sie haben es falsch gemacht.

    – rnevius

    9. November 2014 um 11:23 Uhr

  • @rnevius Danke behoben.

    – doppelt scharf

    9. November 2014 um 17:55 Uhr

Benutzer-Avatar
Das Alpha

Verwenden Guzzle-PaketCodebeispiel:

$request = $client->createRequest('GET', ['future' => true]);
$client->send($request)->then(function ($response) {
    echo 'Got a response! ' . $response;
});

Schau, wie kannst du es installieren. Überprüfen Sie auch die RingPHP und zukünftige Antworten für einige zusätzliche Informationen. Eigentlich RingPHP wird als Handler-Schicht in verwendet Guzzle und ganz unten die Reagieren/Versprechen gibt die Promises/A Unterstützung für PHP.

1368710cookie-checkAsynchroner PHP-Code im WP-Plugin

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy