Come includere file PHP nei plugin nel modo corretto
-
-
staifacendo qualcosa di sbagliato se ricevi quelmessaggio.Assicurati diincluderetuttii fileprima diiniziare aeseguirefunzioni da questifileyou'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 è così,le chiamate sono all'interno deifile che stoincludendo!thats no it, the calls are within the files i'm including!
- 0
- 2011-01-21
- Bainternet
-
lol,ora vedo `WP_PLUGIN_URL`nel codice sopra :)lol, now I see `WP_PLUGIN_URL` in your code above :)
- 0
- 2011-01-21
- onetrickpony
-
Inparolepoverepuoi soloincludere ()filetramite unpercorsofilee non un URI.Put very simply you can only include() files via a filepath and not a URI.
- 3
- 2011-01-21
- editor
-
Questo articolo del Codex (probabilmente scritto dopo che haiposto latua domanda) èmolto 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
-
Lo staifacendoin unfile PHP che viene utilizzato comeendpoint AJAX o comegestore dimoduli?Non dovresti **mai **effettuare chiamate dirette afile PHP all'interno ditemi oplugin di WordPress.Anche l'inclusione degli URLnonfunziona,se cosìfosse avresti unenormeproblema di sicurezzae prestazioniterribiliAre 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 risposta
- voti
-
- 2011-01-21
Innanzitutto,grazie atutti coloro che hanno risposto,
Ilmioproblemaera chiamarei fileinclusi con l'URL completoin modo chenonpassassero attraverso WordPress.e questo è successoperché,come ho affermatonella domanda,li stavo chiamando dalfile delpluginprincipale.quindi la correzione hafinitoper utilizzare:
include_once('/ipn/paypal-ipn.php');
di cui ho letto sul supporto WordPress . e ancoragrazieper aver risposto!
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!
-
Puoi riconsiderare di contrassegnare questa risposta (https://wordpress.stackexchange.com/a/32002/123092) come accettata?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
Arrivoin ritardo a questafesta,maeccoilmodo "WordPress": usa
plugin_dir_path( __FILE__ )
,adesempio:<?php include( plugin_dir_path( __FILE__ ) . 'ipn/paypal-ipn.php'); ?>
Nota che lafunzione non restituisce la barrafinale perilpercorso delfile.
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.
-
Nota che usando `__FILE__` verrà restituito rispetto alfile corrente da cui lo chiami,quindi se latuaistruzione`include` vieneeseguita da una sottodirectory all'interno della struttura delfile delplugin,riavrai anche la sottodirectory.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'alternativa - se hai * BISOGNO * dipercorsi relativi,è `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
Hoesaminato unpaio diplugin che ho creatoin precedenzaper vederei diversimodiin cui hoinclusofileextra all'interno deiplugine honotato che ci sono duemetodi chepuoi usare,probabilmente cene sono altri.
Definisci la directory deituoiplugin
All'interno deltuoplugin hai la seguente definizioneper definire laposizione corrente delplugin.
Codice diesempio:
define( 'PLUGIN_DIR', dirname(__FILE__).'/' );
Solo una sempliceinclusione o richiesta
Puoi semplicemente usare;include,include_once,require o require_once all'interno della cartella delpluginfacendo riferimento allaposizione comenel codice diesempio seguente.L'esempio seguente sibaserà su unfilenella directory delplug-inprincipale,incluso un altrofile all'interno di una cartella all'interno della cartella delplug-in.
Codice diesempio:
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";
-
relativiincludepossonoportaretuttii tipi diproblemiimprevisti.relative includes can bring all kinds of nasty unexpected issues.
- 0
- 2017-12-01
- Mark Kaplun
-
- 2011-01-21
Finiscoper rinunciare ai costrutti di WordPressperincludee utilizzo quanto segue:
require_once(dirname(__FILE__) . '/filename.php);
Non credo che risolveràeffettivamenteiltuoproblema,che sembraessere unproblema di ambito,ma èil codice che utilizzo.
Per quanto riguarda la differenzatraincludee require:
include lancerà un avviso seilfilenon vienetrovato
requiregenererà un errorefatale seilfilenon vienetrovatoinclude_oncee require_oncenonincluderà/richiederànuovamenteilfile/codice se ègià statoincluso/richiesto (nota cheper quantone so,questo è soloper unfile specificoin una directory specifica).
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
<"Includi"
L'istruzioneinclude ()includee valutailfile specificato.
Includi una volta
L'istruzioneinclude_once ()includee valuta quanto specificato durante l'esecuzione delfile script. Questo è un comportamento simile a l'istruzioneinclude (),con la sola la differenza è che seil codice da unfile ègià statoincluso,esso non saràincluso dinuovo. Come la ilnome suggerisce,saràincluso solo una volta.
<⇨Require"
require ()e include () sonoidenticiin ognimodotranne come gestireilfallimento. Entrambiproducono unfile Attenzione,ma require () restituisce unfile Errorefatale. In altreparole,no esita a usare require () se vuoi unfilemancante di cuiinterrompere l'elaborazione lapagina.
Richiedi una volta
L'istruzione require_once ()includee valuta quanto specificato durante l'esecuzione delfile script. Questo è un comportamento simile a l'istruzione require (),con la sola la differenza è che seil codice da unfile ègià statoincluso,esso non verràincluso dinuovo.
Leinformazioni di cui sopraprovengono dalla documentazione PHP,ilfatto è chenon cen'è una corretta,dipenderà dallanecessità del codice,ho require () su coseimportanti come lefunzioni,ma sufile ditemi comefooter oil loop che usoinclude_once oincludeperchépossogestire l'avvisoe dire all'utente/visitatore che si è verificato unerroreinvece di unerrorefatale
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
-
Come dice @mtekk,ti consiglierei di usare questa struttura: 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
Ciao @ בניית אתרים:
Quando WordPress sta caricando,definisce lafunzione
add_action()
prima chetenti di caricare qualsiasiplugin Ilfatto chetu riceva l'erroremi dice che staifacendo qualcosa di strano oche qualcosanon va con latuainstallazione di WordPress.Chi vuoifar caricareiltuo "plugin" ?Stai usando un
include*()
orequire*()
per caricarlo,magarineltuofilewp-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');
o
define( 'PLUGIN_ROOT_DIR', plugin_dir_path( __FILE__ ) ); include( PLUGIN_ROOT_DIR . 'ipn/paypal-ipn.php');
o
$plugin_dir_path = plugin_dir_path( __FILE__ ); include( $plugin_dir_path . 'ipn/paypal-ipn.php');
Nota:perenqueu .css & amp;Ifile .js
admin_enqueue_scripts
all'interno delplugin utilizzanoplugin_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
Ogni volta che crei unnuovofilenellatua directory di lavoro,deviincluderlo ogni volta.Maprova unmetodoper scansionare latua directorye allegarla automaticamente,non soloi filephp,che aiuta aincludere correttamentei filephp,jse css suentrambii lati (backend,frontend).
http://kvcodes.com/2014/05/wordpress-theme-development-include-files-automaticamente/
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/
-
Siprega di aggiungere leinformazionipertinenti dal collegamentofornito alla risposta.Usail linkper scopi di credito.Perfavore [modifica] latua domandaPlease 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
Ilmioproblema è quandonelfile delpluginprincipaleincludo unfile PHP simile a questo:
e su quelfile ho una chiamata a unafunzione di WordPress come:
e ottengo:
Ora,prima di dire "usa
if(**function_exists**('add_action')){
" se lo uso,semplicementenonfunziona.Le domande:
include
,include_once
,require
e quando uso witch?