1

これは、スタック オーバーフローに関する私の最初の投稿です。エチケットに違反したり、何かばかげたことをしたりした場合は、お詫び申し上げます。私も初心者のプログラマーなので、この質問がばかげているように思われる場合は、事前にお詫び申し上げます。

要点は次のとおりです。主なプログラマーが休暇中に、Web サイト用の WordPress プラグインを作成しようとしています。私はいくつかの成功を収めましたが、ユーザーが Web ページで特定のアクションを実行した後、プラグインから simplemodal-login を呼び出す必要があります。現在、ファイル内のプラグインから 1 レベル上の別のディレクトリにあるファイルを含めるために、これを試みています (匿名性を維持するためにファイル名をブロックします)。

include ("../simplemodal-login/simplemodal-login.php");

また、simplemodal-login ディレクトリ部分の前に/../../../、およびを付けてみまし/../../ た。私も試してみました

include ("{$_SERVER['DOCUMENT_ROOT']}/[project name]/wp-content/plugins/simplemodal-login");

そしてそれのいくつかのバリエーション。何も機能していません。このエラー メッセージのバリエーションが表示され続けます。

Warning: include(../simplemodal-login/simplemodal-login.php) [function.include]: failed to open stream: No such file or directory in /home/[user name]/public_html/[website name]/[project name]/wp-content/plugins/[my plugin]/[plugin file] on line 29
Warning: include() [function.include]: Failed opening '../simplemodal-login/simplemodal-login.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/[user name]/public_html/[website name]/[project name]/wp-content/plugins/[plugin name]/[plugin file].php on line 29

私は何を間違っていますか?ユーザーが Web ページを一定回数見た後に simplemodal-login プラグインを実行したいだけです。ファイルを正しく含めるにはどうすればよいですか? 経験の浅いことをお詫びします - 私は大学で Java の入門コースを受講し (これでうまくいきました)、今年の夏にインターンとして PHP を少し (つまり LITTLE) 学びました。ファイルを含めようとしたときにエラーメッセージが表示されないように誰かが私を導くことができれば、それは非常に役に立ちます.

ありがとう!

4

1 に答える 1

1

インクルードしようとしているファイルが、コードを記述しているプラ​​グイン ファイルの 1 つ上のディレクトリ レベルにある場合、移植可能な解決策は次を使用することです。

include dirname(__FILE__) . '/../file.php';

dirname(__FILE__)そのステートメントが実行されるファイルのパスを返します (それ自体が含まれているかどうかに関係なく)。これをWordpressプラグインで問題なく使用しています。

それが役立つことを願っています。

于 2012-08-07T18:43:33.000 に答える