web-dev-qa-db-ja.com

保管場所 PHP plugin/themesによって作成されたファイル

プラグインやテーマが後でそれを含むことができるどこかにphpファイルを作成する必要がある場合があります。例えばcaptchaプラグイン、あるいはtwig/smartyのようなある種のテンプレートシステム(私の状況ではそれはウィジェットのコレクションのための単純なテンプレートエンジンです)。

このファイルはどこに作成しますか?

私が考えることができる唯一の場所はwp-content/uploads/です、しかしそれはちょうど正しく聞こえません:)

それで、あなたがファイルを作成することができて、それらがWordPress /プラグイン/テーマ更新で削除されるのを心配しないで安全な場所がありますか?

1つの解決策は、themes/pluginsディレクトリに子のtheme /ディレクトリを作成することです。

11
onetrickpony

適切な場所私見はあなたがwp-contentディレクトリの中に作成するカスタムフォルダでしょう。ファイルを作成する前にこれを読んでください: http://ottopress.com/2011/tutorial-using-the-wp_filesystem/

8
mfields

プラグインやテーマディレクトリの書き込み権限に頼ることはできないので、 wp_upload_dir() が唯一可能なディレクトリです。
しかし 新しいファイルに情報を保存する必要があるかどうかは本当に疑問です。テンプレートがユーザーによって作成された場合は、それをオプションに保存して、通常のプラグイン関数でコンテンツを解析します(たとえば、プレースホルダーをstrtr()に置き換えるなどして)。

5
fuxia

Wordpressのプラグインに取り組んでいる間、私はあなたの質問に出会いました。私はまた、最初に私のプラグインが作成していたデータをキャッシュするための一時ファイルを作成することを考えました。しかし、もう少し考えてみると、サーバーのクラスターを使用して拡張しようとしている場合、一時的なデータを1つのサーバーに配置したくないため、このアプローチは私には奇妙に思えます。

それで私はもう一度検索しました、そしてそれはそのような問題に対する有効な解決策であるように思われます Wordpress Transients API あなたは有効期限でデータベースにデータを保存することを可能にします。もちろんあなたの問題はまだローカルにキャッシュされたファイルを必要とするかもしれません。データベースには大きすぎるが、少なくともこのオプションも見てみることをお勧めします:-)

5
Sebi

プラグインがファイルを作成するために必要ないくつかの正当な理由だけを考えることができます。 1つは、ユーザーが新しいサイトに移動するためにエクスポートおよびダウンロードできる複雑なオプションをバックアップすることです。もう一つはサイトマッププラグインです。

ユーザがカスタマイズできるテンプレートファイルがプラグインにある場合は、プラグインが更新されてもそれらが上書きされないように、カスタマイズしたファイルを現在のテーマディレクトリに移動するオプションをユーザに与える必要があります。あなたは最初にテーマディレクトリからファイルをロードしようとすることができ、それからあなたのプラグインディレクトリにフォールバックすることができます。

重力フォームは、アップロードされたファイルをアップロード内の独自のフォルダに格納します。 W3 Total Cacheはwp-contentを使用し、ログインリダイレクトは上記の方法を使用します。

3
Chris_O

私はいつもPSR-0互換のオートローダとちょうど動くライブラリフォルダを提案します。

一部のWPユーザーがあなたを撃つかもしれませんが、おそらくあなたはこれらのユーザーに集中していないので、これは選択肢になることができます。特にあなたがますます多くのベンダー固有のライブラリを手に入れた場合。

1
hakre

ファイル(CAPTCHAプラグインの一時ファイルなど)を作成する必要がある場合は、必ず\wp-content\uploads\(または\wp-content\plugin-slug-files\などのカスタムディレクトリ)を使用してください。

他のほとんどのカスタムコードは、実際にはデータベースに格納する必要があります。

1
Chip Bennett