WordPress-Repository verbietet mir Aufruf wp-load.php in Nicht-WordPress-Datei

Ich habe ein WordPress Plugin erstellt, das eine Art Download Manager ist. Ich habe eine externe Datei download.php, die für Downloads verantwortlich ist. Diese Datei ist weg von der Umgebung WordPress, aus diesem Grund muss ich aufrufen:

$wp_root = dirname(dirname(dirname(dirname(__FILE__)))); require_once $wp_root.'/wp-load.php'; 

und ich kann $ wpdb für meine SQL-Abfrage verwenden.

Hinweis: Diese Datei muss extern sein, da ich functionen “headers ()” verwende, um den Download zu erzwingen.

 header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: ".$ctype); header("Content-Length: ".$size); header("Content-Disposition: attachment; filename=".$info->url_file); header("Content-Transfer-Encoding: binary"); 

Mein Plugin funktioniert großartig! Aber als ich es im WordPress-Repository veröffentlichen wollte, antworteten sie mir, dass es verboten ist, wp-load.php oder wp-config.php direkt aufzurufen

Das Einbinden von wp-config.php und / oder wp-load.php ist keine gute Idee und wir können ein Plugin nicht genehmigen, es sei denn, es gibt einen guten Grund, die Datei (en) zu laden. Es ist anfällig für Fehler, da nicht alle WordPress-Installationen die exakt gleiche Dateistruktur haben.

Ich weiß nicht, dass ich $ wpbd verwenden kann

Das ist mein Plugin -> http://demo.gopymes.pe/social-godownload/

Solutions Collecting From Web of "WordPress-Repository verbietet mir Aufruf wp-load.php in Nicht-WordPress-Datei"

Ja, das Plugin-Genehmigungsteam ist mehr als richtig, dies ist nicht der richtige Weg.

Zuerst ein paar Artikel von einem Core-Entwickler und einem hervorragenden Plugin-Entwickler, wo Sie erfahren werden, warum Sie wp-load.php nicht verwenden wp-load.php :

  • Bitte nicht wp-load von Otto auf WordPress einbinden

  • wp-load.php – Ich werde dich finden! , von Pippin’g Blog Crappy Code .

Wenn Sie Ihr Plugin initiieren, können Sie die URL des Plugins wie folgt definieren:
$plugin_url = plugins_url( '/', __FILE__ );

Und wenn Sie Ihr Download-Skript aufrufen, können Sie die benötigten Informationen in einer Abfrage var übergeben, zB $plugin_url . 'download.php?file=FILE-URL' $plugin_url . 'download.php?file=FILE-URL' und $_GET es in Ihrem Skript.

Dies ist nur eine allgemeine Gliederung. Weitere Details zur Logik Ihres Plugins müssen bereitgestellt werden, wenn diese Gliederung nicht ausreicht. Und, wie @AJHenderson hervorhebt, ist WordPress Answers der Ort, an dem Sie viele Entwickler finden, einschließlich Otto und Pippin.

Sicherheitshinweis

Sie müssen Ihr Download-Skript fest gesichert haben, da Sie Folgendes tun können:

  http://example.com/path/to/plugin/download.php?file= http://example.com/wp-config.php