So fügen Sie PHP-Dateien richtig in Plugins ein
-
-
Siemachenetwasfalsch,wenn Sie diese Nachrichterhalten.Stellen Sie sicher,dass Sie alle Dateieneinschließen,bevor Sie Funktionen aus diesen Dateien ausführenyou're doing something wrong if you get that message. Make sure you include any files before you start running functions from these files
- 0
- 2011-01-21
- onetrickpony
-
dasistnein,die Aufrufe sindin den Dateien,dieicheinschließe!thats no it, the calls are within the files i'm including!
- 0
- 2011-01-21
- Bainternet
-
lol,jetzt seheich `WP_PLUGIN_URL`in deinem Code oben :)lol, now I see `WP_PLUGIN_URL` in your code above :)
- 0
- 2011-01-21
- onetrickpony
-
Einfach ausgedrückt können Sie () Dateiennur übereinen Dateipfad undnicht übereinen URIeinschließen.Put very simply you can only include() files via a filepath and not a URI.
- 3
- 2011-01-21
- editor
-
Dieser Codex-Artikel (wahrscheinlichgeschrieben,nachdem Sie Ihre Fragegestellt haben)ist sehr hilfreich: http://codex.wordpress.org/Determining_Plugin_and_Content_DirectoriesThis Codex article (probably written after you asked your question) is quite helpful: http://codex.wordpress.org/Determining_Plugin_and_Content_Directories
- 1
- 2014-03-12
- henrywright
-
Tun Sie diesin einer PHP-Datei,die als AJAX-Endpunkt oder als Formularhandler verwendet wird?Sie sollten **niemals ** direkte Aufrufe von PHP-Dateienin WordPress-Themes oder Pluginstätigen.Auch das Einschließen von URLsfunktioniertnicht,wenn dies der Fall wäre,hätten Sieein massives Sicherheitsproblem undeine schreckliche LeistungAre you doing this in a PHP file that's being used as an AJAX endpoint, or a form handler? You should **never** make direct calls to PHP files inside WordPress themes or plugins. Also including URLs doesn't work, if it did you'd have a massive security problem, and terrible performance
- 0
- 2016-05-13
- Tom J Nowell
-
8 Antworten
- Stimmen
-
- 2011-01-21
Zunächst vielen Dank an alle,diegeantwortet haben,
Mein Problem war,dieenthaltenen Dateienmit vollständiger URL aufzurufen,damit sienicht über WordPress laufen.und dasgeschah,weilich sie,wieichin der Frage angegeben habe,aus der Haupt-Plugin-Datei aufrief.Das Updateendete alsomit:
include_once('/ipn/paypal-ipn.php');
Ich habe unter WordPress-Unterstützung
. undnochmals vielen Dankfür die Antwort! First , thank you to everyone who answered,
My problem was calling the included files with full url that way they don't go through WordPress. and that happened because as i stated on the question i was calling them from the main plugin file. so the fix ended up using:
include_once('/ipn/paypal-ipn.php');
i read about at the WordPress support. and again thanks for answering!
-
Können Siees sichbitte nocheinmal überlegen,diese Antwort (https://wordpress.stackexchange.com/a/32002/123092) als akzeptiert zumarkieren?Can you please reconsider to mark this answer (https://wordpress.stackexchange.com/a/32002/123092) as accepted one?
- 0
- 2017-09-18
- I am the Most Stupid Person
-
- 2011-10-24
Kommen Sie zu spät zu dieser Party,aber hierist die "WordPress" -Methode: Verwenden Sie
plugin_dir_path( __FILE__ )
,zB:<?php include( plugin_dir_path( __FILE__ ) . 'ipn/paypal-ipn.php'); ?>
Beachten Sie,dass die Funktion den abschließenden Schrägstrich für den Dateipfad zurückgibt.
Coming in late to this party, but here's the "WordPress" way: use
plugin_dir_path( __FILE__ )
, e.g.:<?php include( plugin_dir_path( __FILE__ ) . 'ipn/paypal-ipn.php'); ?>
Note that the function does return the trailing slash for the filepath.
-
Beachten Sie,dassbei Verwendung von `__FILE__` die Ausgabe relativ zur aktuellen Datei,aus der Sie sie aufrufen,ausgegeben wird. Wenn Ihre`include` -Anweisung also auseinem Unterverzeichnisin Ihrer Plugin-Dateistruktur stammt,erhalten Sie auch das Unterverzeichnis zurück.Note that by using `__FILE__` it will output relative to the current file you call it from, so if your `include` statement is done from a subdirectory inside your plugin file structure you'll get the subdirectory back too.
- 3
- 2018-01-30
- squarecandy
-
Die Alternative - wenn Sie relative Pfade *benötigen *,ist `require_once (plugin_dir_path (__ DIR __). '/Myfile.inc');`The alternative - if you *NEED* relative paths, is `require_once(plugin_dir_path(__DIR__).'/myfile.inc');`
- 2
- 2019-10-04
- FoggyDay
-
- 2011-01-21
Ich habeeinige Plugins durchgesehen,dieich zuvorerstellt habe,umfestzustellen,auf welche Weiseich zusätzliche Dateienin Pluginseingefügt habe,undfestgestellt,dasses zwei Methodengibt,die Sie verwenden können. Esgibt wahrscheinlichmehr.
Definieren Sie Ihr Plugin-Verzeichnis
In Ihrem Plugin haben Sie diefolgende Definition,um den aktuellen Speicherort des Plugins zu definieren.
Beispielcode:
define( 'PLUGIN_DIR', dirname(__FILE__).'/' );
Nurein direktes Include oder Require
Sie könneneinfach verwenden;include,include_once,require oder require_oncein Ihrem Plugin-Ordner,indem Sie auf den Speicherort wieim folgenden Beispielcode verweisen.Dasfolgende Beispielbasiert aufeiner Dateiin Ihrem Root-Plugin-Verzeichnis,einschließlicheiner anderen Datei auseinem Ordnerin Ihrem Plugin-Ordner.
Beispielcode:
include "classes/plugin-core.php";
I looked through a couple of plugins that I previously created to see the diferent ways that I have included extra files inside of plugins and I noticed there are two methods you can use, there are probably more.
Define your plugin directory
Inside of your plugin have the following definition to define the current plugin location.
Example code:
define( 'PLUGIN_DIR', dirname(__FILE__).'/' );
Just a straight up include or require
You can simply use; include, include_once, require or require_once inside of your plugin folder by referencing the location like in the below example code. The below example will be based on a file in your root plugin directory including another file from within a folder inside of your plugin folder.
Example code:
include "classes/plugin-core.php";
-
relative Includes können alle Arten vonbösen unerwarteten Problemenmit sichbringen.relative includes can bring all kinds of nasty unexpected issues.
- 0
- 2017-12-01
- Mark Kaplun
-
- 2011-01-21
Am Ende verzichteich auf die WordPress-Konstruktefür Includes und verwende Folgendes:
require_once(dirname(__FILE__) . '/filename.php);
Ichglaubenicht,dasses Ihr Problemtatsächlich lösen wird,wasein Umfangsproblem zu sein scheint,aberesist der Code,denich verwende.
Was den Unterschied zwischeninclude und requirebetrifft:
includegibt eine Warnung aus,wenn die Dateinichtgefunden wird
requiregibt einen schwerwiegenden Fehler aus,wenn die Dateinichtgefunden wirdinclude_once und require_onceenthalten/benötigen die Datei/den Codenichterneut,wenn siebereitsenthalten/erforderlich waren (soweitich dasbeurteilen kann,gilt diesnurfüreine bestimmte Dateiin einembestimmten Verzeichnis).
I end up forgoing the WordPress constructs for includes and use the following:
require_once(dirname(__FILE__) . '/filename.php);
I don't think it will actually solve your issue, which seems to be a scope issue, but it is the code I use.
As for the difference between include and require:
include will throw a warning if the file is not found
require will throw a fatal error if the file is not foundinclude_once and require_once will not include/require the file/code again if it has already been included/required (note that as far as I can tell, this is only for a specific file in a specific directory).
-
- 2011-01-21
Include
Dieinclude () - Anweisungenthält und wertet die angegebene Datei aus.
Einmaleinschließen
Die Anweisunginclude_once ()enthält und wertet das angegebene aus Datei während der Ausführung der Skript. Diesistein ähnliches Verhalten wie dieinclude () - Anweisungmit dereinzigen Unterschiedist,dass wenn der Code von Eine Datei wurdebereits aufgenommen wirdnicht wieder aufgenommen. Als die Name schlägt vor,es wirdenthalten sein nureinmal.
Anfordern
require () undinclude () sindin jeder Hinsichtidentisch,außer wie sie Handle Fehler. Sieproduzierenbeide a Warnung,abererfordern ()führt zu a Fataler Fehler. Mit anderen Worten,nicht Zögern Sie,require () zu verwenden,wenn Siemöchten eine fehlende Datei,um die Verarbeitung von zu stoppen die Seite.
Einmalerforderlich
Die Anweisung require_once ()enthält und wertet die angegebenen aus Datei während der Ausführung der Skript. Diesistein ähnliches Verhalten wie die require () - Anweisungmit dereinzigen Unterschiedist,dass wenn der Code von Eine Datei wurdebereits aufgenommen wirdnicht wieder aufgenommen.
Die obigen Informationen stammen aus der PHP-Dokumentation. Die Sacheist,dasses keine korrektegibt. Sie hängt von der Notwendigkeit des Codes ab. Ichbenötige ()für wichtige Dinge wie Funktionen,aberfür Themendateien wie die Fußzeile oder die Schleife Ich verwendeinclude_once oderinclude,weilich die Warnung verarbeiten und dem Benutzer/Besucher sagen kann,dassein Fehler stattnureinesfatal_error
aufgetretenistInclude
The include() statement includes and evaluates the specified file.
Include Once
The include_once() statement includes and evaluates the specified file during the execution of the script. This is a behavior similar to the include() statement, with the only difference being that if the code from a file has already been included, it will not be included again. As the name suggests, it will be included just once.
Require
require() and include() are identical in every way except how they handle failure. They both produce a Warning, but require() results in a Fatal Error. In other words, don’t hesitate to use require() if you want a missing file to halt processing of the page.
Require Once
The require_once() statement includes and evaluates the specified file during the execution of the script. This is a behavior similar to the require() statement, with the only difference being that if the code from a file has already been included, it will not be included again.
The info above is from the PHP documentation, the thing is there is not a correct one, will depend on the need of the code, I do require() on important stuff like functions, but on theme files like footer or the loop I use include_once or include because i can handle the warning and say to the user/visitor that happend an error instead of just a fatal_error
-
Wie die @mtekk sagen,würdeich Ihnenempfehlen,diese Struktur zu verwenden: require_once (dirname (__ FILE__). '/filename.php);As the @mtekk say I would recomend you to use tis structure: require_once(dirname(__FILE__) . '/filename.php);
- 0
- 2011-01-21
- Webord
-
- 2011-01-21
Hi @ בניית אתרים:
Wenn WordPressgeladen wird,definiertes die Funktion
add_action()
,bevor versucht wird,Plugins zu laden. Die Tatsache,dass Sie den Fehlererhalten,sagtmir,dass Sieetwas Seltsamestun oderdassetwasmit Ihrer WordPress-Installationnicht stimmt.Wen soll Ihr "Plugin" laden?Verwenden Sie zum Ladenein
include*()
oderrequire*()
,möglicherweisein Ihrerwp-config.php
-Datei?Hi @בניית אתרים:
When WordPress is loading it defines the
add_action()
function before it attempts to load any plugins The fact you are getting the error tells me you are doing something strange or that something is wrong with your WordPress install.Who are you getting your "plugin" to load? Are you using an
include*()
orrequire*()
to load it, maybe in yourwp-config.php
file? -
- 2016-05-13
include( plugin_dir_path( __FILE__ ) . 'ipn/paypal-ipn.php');
oder
define( 'PLUGIN_ROOT_DIR', plugin_dir_path( __FILE__ ) ); include( PLUGIN_ROOT_DIR . 'ipn/paypal-ipn.php');
oder
$plugin_dir_path = plugin_dir_path( __FILE__ ); include( $plugin_dir_path . 'ipn/paypal-ipn.php');
Hinweis: um .css & amp;.js Dateien
admin_enqueue_scripts
im Plugin verwendenplugin_dir_url( __FILE__ )
$plugin_dir_uri = plugin_dir_url( __FILE__ ); wp_enqueue_style( 'plugin-style', $plugin_dir_uri . 'css/plugin-style.css');
include( plugin_dir_path( __FILE__ ) . 'ipn/paypal-ipn.php');
or
define( 'PLUGIN_ROOT_DIR', plugin_dir_path( __FILE__ ) ); include( PLUGIN_ROOT_DIR . 'ipn/paypal-ipn.php');
or
$plugin_dir_path = plugin_dir_path( __FILE__ ); include( $plugin_dir_path . 'ipn/paypal-ipn.php');
Note : to enqueu .css & .js files
admin_enqueue_scripts
inside plugin useplugin_dir_url( __FILE__ )
$plugin_dir_uri = plugin_dir_url( __FILE__ ); wp_enqueue_style( 'plugin-style', $plugin_dir_uri . 'css/plugin-style.css');
-
- 2014-05-29
Wenn Sieeine neue Dateiin Ihrem Arbeitsverzeichniserstellen,müssen Sie diesejedes Maleinfügen.Versuchen Siejedocheine Methode,um Ihr Directroy zu scannen und automatisch anzuhängen,nichtnur die PHP-Dateien. Dies hilft,PHP-,JS- und CSS-Dateien aufbeiden Seiten (Backend,Frontend) richtigeinzuschließen.
http://kvcodes.com/2014/05/WordPress-Theme-Entwicklung-Include-Dateien-automatisch/
Whenever you create a new file inside your working directory, you have to include it everytime. But try a method to scan your directroy and attach it automatically, not only the php files, Which helps to include php, js and css fiules properly on the both sides( backend, front end).
http://kvcodes.com/2014/05/wordpress-theme-development-include-files-automatically/
-
Bittefügen Sie relevante Informationen über den Link zu Ihrer Antwort hinzu.Verwenden Sie den Linkfür Kreditzwecke.Bitte [bearbeiten] Sie Ihre FragePlease add relevant information from the link provided to your answer. Use the link for credit purposes. Please [edit] your question
- 1
- 2014-05-29
- Pieter Goosen
Mein Problemist,wennichin die Haupt-Plugin-Dateieine PHP-Datei wie diefolgendeeinfüge:
undin dieser Datei habeicheinen Aufrufeiner WordPress-Funktion wie:
undichbekomme:
Bevor Siejetzt sagen "benutze
if(**function_exists**('add_action')){
",wennich dasbenutze,funktionierteseinfachnicht.Die Fragen:
include
,include_once
,require
und wann verwendeich witch?