Comment inclure correctement les fichiers PHP dans les plugins
-
-
vousfaites quelque chose demal si vous recevez cemessage.Assurez-vous d'incluretous lesfichiers avant de commencer àexécuter desfonctions àpartir de cesfichiersyou'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
-
non,les appels sont dans lesfichiers quej'inclus!thats no it, the calls are within the files i'm including!
- 0
- 2011-01-21
- Bainternet
-
lol,maintenantje vois `WP_PLUGIN_URL` dans votre code ci-dessus :)lol, now I see `WP_PLUGIN_URL` in your code above :)
- 0
- 2011-01-21
- onetrickpony
-
Entermestrès simples,vousne pouvezinclure que desfichiers () via un chemin defichieret non un URI.Put very simply you can only include() files via a filepath and not a URI.
- 3
- 2011-01-21
- editor
-
Cet article du Codex (probablement rédigé après que vous ayezposé votre question)esttrès utile: 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
-
Faites-vous cela dans unfichier PHP utilisé commepoint determinaison AJAX ou commegestionnaire deformulaire?Vousne devriez **jamais ** appeler directement desfichiers PHP dans desthèmes ou desplugins WordPress.L'inclusion d'URLne fonctionnepasnonplus,si c'était le cas,vous auriez unproblème de sécuritémassifet desperformancesterriblesAre 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 réponses
- votes
-
- 2011-01-21
Tout d'abord,merci àtous ceux qui ont répondu,
Monproblème était d'appeler lesfichiersinclus avec l'URL complète de cettefaçon qu'ilsne passentpaspar WordPress.et cela s'estproduitparce que,commeje l'ai dit sur la question,je les appelais àpartir dufichierprincipal duplugin.donc le correctif afini par utiliser:
include_once('/ipn/paypal-ipn.php');
J'ai lu sur le support WordPress . etencoremerci d'avoir répondu!
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!
-
Pouvez-vous s'il vousplaît reconsidérerpourmarquer cette réponse (https://wordpress.stackexchange.com/a/32002/123092) comme acceptée?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
Arriveren retard à cette soirée,mais voici laméthode "WordPress": utilisez
plugin_dir_path( __FILE__ )
,parexemple:<?php include( plugin_dir_path( __FILE__ ) . 'ipn/paypal-ipn.php'); ?>
Notez que lafonction renvoie la barre oblique defin pour le chemin dufichier.
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.
-
Notez qu'en utilisant `__FILE__`,il affichera une sortie relative aufichier actuel àpartir duquel vous l'appelez,donc si votreinstruction`include`esteffectuée àpartir d'un sous-répertoire à l'intérieur de la structure defichiers de votreplugin,vous récupérerez également le sous-répertoire.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
-
L'alternative - si vous * BESOIN * des chemins relatifs,est `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
J'aiparcouru quelquesplugins quej'aiprécédemment crééspour voir les différentesfaçons dontj'aiinclus desfichiers supplémentaires à l'intérieur despluginset j'ai remarqué qu'il y a deuxméthodes que vouspouvez utiliser,il yen aprobablementplus.
Définissez le répertoire de votreplugin
À l'intérieur de votreplugin,ayez la définition suivantepour définir l'emplacement actuel duplugin.
Exemple de code:
define( 'PLUGIN_DIR', dirname(__FILE__).'/' );
Juste une simpleinclusion ouexigence
Vouspouvez simplement utiliser;include,include_once,require ou require_once à l'intérieur de votre dossierpluginen référençant l'emplacement comme dans l'exemple de code ci-dessous.L'exemple ci-dessous serabasé sur unfichier dans le répertoire racine de votrepluginincluant un autrefichier dans un dossier à l'intérieur de votre dossierplugin.
Exemple de code:
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";
-
Lesinclusions relativespeuvent apportertoutes sortes deproblèmesinattendus désagréables.relative includes can bring all kinds of nasty unexpected issues.
- 0
- 2017-12-01
- Mark Kaplun
-
- 2011-01-21
Jefinispar abandonner les constructions WordPresspour lesinclusionset j'utilise ce qui suit:
require_once(dirname(__FILE__) . '/filename.php);
Jene pensepas que cela résoudra réellement votreproblème,qui semble être unproblème deportée,mais c'est le code quej'utilise.
Quant à la différenceentreincludeet require:
include lancera un avertissement si lefichierestintrouvable
require lancera une erreurfatale si lefichiern'estpastrouvéinclude_onceet require_oncen'inclurontpas/exigeront ànouveau lefichier/code s'il a déjà étéinclus/requis (notez quepour autant queje sache,cen'est quepour unfichier spécifique dans un répertoire spécifique).
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
<₹Inclure
L'instructioninclude ()inclutet évalue lefichier spécifié.
Inclure unefois
L'instructioninclude_once ()inclutet évalue les fichier lors de l'exécution du scénario. C'est un comportement similaire à l'instructioninclude (),avec le seul la différence étant que si le code de unfichier a déjà étéinclus,il ne seraplusinclus. Comme le nom suggère,il serainclus une seulefois.
<₹Require
require ()et include () sontidentiques danstous les sens sauf commentils gérer l'échec. Ilsproduisenttous deux un Attention,mais require ()entraîne un Erreurfatale. En d'autrestermes,ne hésitez à utiliser require () si vous le souhaitez unfichiermanquantpour arrêter letraitement de lapage.
Exiger unefois
L'instruction require_once ()inclutet évalue les fichier lors de l'exécution du scénario. C'est un comportement similaire à l'instruction require (),avec le seul la différence étant que si le code de unfichier a déjà étéinclus,il ne seraplusinclus.
Lesinformations ci-dessusproviennent de la documentation PHP,leproblèmeest qu'iln'yen apas une correcte,cela dépendra dubesoin du code,j'aibesoin de () sur des élémentsimportants comme lesfonctions,mais sur desfichiers dethème comme lepied depage ou le loop J'utiliseinclude_once ouincludeparce queje peuxgérer l'avertissementet dire à l'utilisateur/visiteur qu'uneerreur s'estproduite au lieu d'une simpleerreurfatale
Include
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
-
Comme le dit @mtekk,je vous recommande d'utiliser cette structure: 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
Bonjour @ בניית אתרים:
Lorsque WordPressesten cours de chargement,il définit lafonction
add_action()
avant qu'iltente de charger desplugins Lefait que vous obtenez l'erreurme dit que vousfaites quelque chose d'étrange ouque quelque chosene vapas avec votreinstallation WordPress.Qui chargez-vous votre "plugin" ?Utilisez-vous un
include*()
ourequire*()
pour le charger,peut-être dans votrefichierwp-config.php
?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');
ou
define( 'PLUGIN_ROOT_DIR', plugin_dir_path( __FILE__ ) ); include( PLUGIN_ROOT_DIR . 'ipn/paypal-ipn.php');
ou
$plugin_dir_path = plugin_dir_path( __FILE__ ); include( $plugin_dir_path . 'ipn/paypal-ipn.php');
Remarque:pourmettreen file d'attente .css & amp;Lesfichiers .js
admin_enqueue_scripts
à l'intérieur duplugin utilisentplugin_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
Chaquefois que vous créez unnouveaufichier dans votre répertoire detravail,vous devez l'inclure à chaquefois.Maisessayez uneméthodepour scanner votre directroyet l'attacher automatiquement,pas seulement lesfichiersphp,ce qui aide àinclure correctement lesfiulesphp,jset css des deux côtés (backend,front-end).
http://kvcodes.com/2014/05/wordpress-theme-development-include-files-automatically/
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/
-
Veuillez ajouter desinformationspertinentes àpartir du lienfourni à votre réponse.Utilisez le lien à desfins de crédit.Veuillez [modifier] votre questionPlease 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
Monproblèmeest lorsque sur lefichierprincipal duplugin,j'inclus unfichier PHP quelque chose comme ceci:
et sur cefichier,j'ai un appel à unefonction WordPress comme:
et j'obtiens:
Maintenant,avant de dire "utilisez
if(**function_exists**('add_action')){
" sij'utilise cela,celane fonctionnetout simplementpas.Les questions:
include
,include_once
,require
et quand dois-je utiliser witch?