Como incluir arquivos PHP em plugins a maneira correta
-
-
Vocêestáfazendo algoerrado se conseguiressamensagem.Certifique-se deincluirtodos os arquivos antes deiniciar aexecução defunções desses arquivosyou'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
-
Issonão é,as chamadasestão dentro dos arquivos queestouincluindo!thats no it, the calls are within the files i'm including!
- 0
- 2011-01-21
- Bainternet
-
lol,agora vejo `wp_plugin_url`no seu código acima :)lol, now I see `WP_PLUGIN_URL` in your code above :)
- 0
- 2011-01-21
- onetrickpony
-
Coloquemuito simplesmente vocêpodeincluir apenas () arquivospormeio de umplubee não um URI.Put very simply you can only include() files via a filepath and not a URI.
- 3
- 2011-01-21
- editor
-
Este artigo de Codex (provavelmenteescrito depois que vocêfez suapergunta) ébastante útil: http://codex.wordpress.org/determining_plugin_and_content_diretectoriesThis 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
-
Vocêestáfazendoissoem um arquivo PHP queestá sendo usado como umendpoint Ajax,ou ummanipulador deformulário?Você deve **nunca **fazer chamadas diretaspara arquivos PHP dentro detemas ouplugins WordPress.Tambémincluindo URLsnãofunciona,se vocêteria umproblema de segurançamaciçae desempenhoterrívelAre 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 respostas
- votos
-
- 2011-01-21
Primeiro,obrigado atodos que responderam,
Meuproblemaestava chamando os arquivosincluídos com URL completo dessamaneiraelesnãopassampelo WordPress.Eisso aconteceuporque,como afirmeinapergunta,euestava ligandoparaeles do arquivo depluginprincipal.então a correção acabou usando:
include_once('/ipn/paypal-ipn.php');
Eu li sobre o suporte WordPress . Enovamente obrigadopor responder!
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!
-
Vocêpode,porfavor,reconsiderarparamarcaresta resposta (https://wordpress.stackexchange.com/a/32002/123092) como aceito um?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
chegando atrasadoparaestafesta,mas aquiestá amaneira "WordPress": use
plugin_dir_path( __FILE__ )
,porexemplo:<?php include( plugin_dir_path( __FILE__ ) . 'ipn/paypal-ipn.php'); ?>
Observe que afunção faz retorna abarra "strong>para o FilePath.
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.
-
Observe que,usando `__file__`ele vaiproduzirem relação ao arquivo atual que você chamar,então se a sua últimainstrução éfeita apartir de um subdiretório dentro da suaestrutura de arquivo deplug-in,vocêtambém obterá o subdiretório.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
-
A alternativa - se vocêprecisar * caminhos relativos,é 'requer_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
Eu olhei através de umpar deplugins queeu criei anteriormentepara ver as diferentesmaneiras queeuincluí arquivosextras dentro depluginse notei que há doismétodos que vocêpode usar,provavelmente hámais.
Defina seu diretório deplugin
Dentro do seuplugintem a seguinte definiçãopara definir o local deplug-in atual.
código deexemplo:
define( 'PLUGIN_DIR', dirname(__FILE__).'/' );
apenas um straight upincluem ouexige
Vocêpode simplesmente usar;Incluir,incluir_once,exigir ouexigir_once dentro dapasta do seuplug-in,referenciando o local comono código deexemplo abaixo.Oexemplo abaixo serábaseadoem um arquivono diretório deplugin raiz,incluindo outro arquivo de dentro de umapasta dentro da suapasta Plugin.
código deexemplo:
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";
-
O relatoincluipodetrazertodos ostipos de questõesinesperadas desagradáveis.relative includes can bring all kinds of nasty unexpected issues.
- 0
- 2017-12-01
- Mark Kaplun
-
- 2011-01-21
Eu acabo sendo as construções do WordPressparaincluire usar o seguinte:
require_once(dirname(__FILE__) . '/filename.php);
Eunão acho que realmente resolverá seuproblema,queparece ser umproblema deescopo,mas é o código que uso.
Quanto à diferençaentreincluire exigir:
Incluirjogará um aviso se o arquivonãoforencontrado
exigir que lance umerrofatal se o arquivonãoforencontradoIncluir_Oncee Requer_Ancenãoincluirá/exigirá o arquivo/códigonovamente sejátiver sidoincluído/necessário (note que,tanto quantoeupossa dizer,isso é apenaspara um arquivoespecíficoem um diretórioespecífico).
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
.
incluem
Ainstrução Incluir ()incluie avalia o arquivoespecificado.
incluir uma vez
Ainstruçãoinclude_once ()incluie avalia oespecificado arquivo durante aexecução do roteiro. Este é um comportamento semelhante ao ainstrução Incluir (),com a única diferença sendo que se o código de Um arquivojáfoiincluído, não seráincluídonovamente. Enquanto o Nome sugere,ele seráincluído apenas uma vez.
requer
requer ()e incluir () sãoidênticosem todos os sentidos,exceto comoeles lidar comfalha. Ambosproduzem um Aviso,mas requer () resultaem um Errofatal. Em outraspalavras,não hesiteem usarexigir () se você quiser um arquivo ausentepara deter oprocessamento de apágina.
requer uma vez
Ainstrução REQUE_ONCE ()incluie avalia oespecificado arquivo durante aexecução do roteiro. Este é um comportamento semelhante ao a declaração requer (),com o único diferença sendo que se o código de Um arquivojáfoiincluído, não seráincluídonovamente.
Asinformações acima são da documentação do PHP,a coisa é quenão há correta,dependerá danecessidade do código,eupreciso ()em coisasimportantes comofunções,masem arquivostemáticos como o rodapé ou o loopi Usoinclude_once ouincluoporqueeuposso lidar com o avisoe dizer ao usuário/visitante que aconteceu umerroem vez de apenas umfatal_error
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
-
Como o @mtekk diz queeu recomendaria que você use aestrutura do TIS: 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
oi @ בניית אתרים:
Quando o WordPressestá carregando,define o
Add_Action_action () Antes de Tentativa de carregar qualquerplugins ofato de que vocêestá recebendo oerrome diz que vocêestáfazendo algoestranho ouque algoestáerrado com a suainstalação do WordPress.
Quem vocêestá recebendo o seu "plugin" carregar?Vocêestá usando um
.include * ()
ourequer * ()
para carregá-lo,talvezem seu arquivowp-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');
Nota:paraenqueu .css & amp;.JS Arquivos
admin_enqueue_scripts
Insideplugin Useplugin_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
Sempre que você cria umnovo arquivo dentro do seu diretório detrabalho,você deveincluí-lotoda vez.Mastente ummétodopara digitalizar o seu directroye anexá-lo automaticamente,não apenas os arquivos PHP,o que ajuda aincluir as vazias PHP,JSe CSS corretamentenos dois lados (back-end,frontend).
http://kvcodes.com/2014/05/WordPress-Theme-Desenvolvimento - Incluir arquivos - 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/
-
Porfavor adicioneinformações relevantes do linkfornecido à sua resposta.Use o linkparafins de crédito.Porfavor [edite] suaperguntaPlease 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
Meuproblema é quandono arquivopluginprincipaleuincluo um arquivo PHP algo comoeste:
e nesse arquivoeutenho uma chamadapara umafunção WordPress como:
e eu recebo:
Agora antes de dizer "Use se (**function_exists ** ('add_action')) {" Seeu usarisso,entãoele simplesmentenãofunciona.
asperguntas:
include
,,requer
e quandoeu uso abruxa?