アップロードでのディレクトリの作成-wp_mkdir_p()またはWP_Filesystem?


9

以前にWPでフォルダーやファイルを作成する必要があったことはないと思いますが、プラグインの場合はにキャッシュ(サイズ変更された画像用)フォルダーが必要wp-content/uploadsです。

どちらが問題を提起しますか?私は本当にすべてのプロセスを実行する必要がありますFilesystem API(必要なときにFTP資格情報を要求することを含む)、またはこれにwp_mkdir_p()は十分ですか?

回答:


7

wp-content/uploads/サーバーに対して書き込み可能である必要があります(そうでない場合、ファイルをアップロードすることは不可能でしょうか?)このディレクトリの下に何かを作成する場合は、を使用しても安全wp_mkdir_p()です。

のようにWP_Filesystem、サーバーに場所への書き込み権限がない可能性がある場合にのみ使用しますwp-content/plugins/。これは、サーバーに対して書き込み可能である必要はありません(少なくとも私はそうである必要はないと思いますか?)。

補足:Codexの[ファイルのアクセス許可]ページでも、wp-content/cache/ディレクトリについて説明しています。これはキャッシュファイルの「より標準的な」場所でしょうか?


確かではありませんがcache、ページキャッシングプラグインのようなものについての方がいいと思いますが、私の場合は、画像の代替バージョンについてのほうがいいです...
ラースト

6

可能性やホスティングのセットアップの無限の海をいじる前に、私は簡単なことを試してみます:

$target = 'wherever';
wp_mkdir_p( $target );

if ( wp_mkdir_p( $target ) === TRUE )
{
    echo "Folder $target successfully created";
}
else
{
    new WP_Error; #... etc. Just tell where the user has to make a new folder with the name xy
    // or if you're kool, you use _doing_it_wrong(); ... ;-)
}

ところで、テストされていないのでwp_mkdir_p();、実行後にチェックできるか、fnの実行をifステートメント内で保存する必要があるかどうかを判断できません...今)。
カイザー'19年

関連する機能はバックエンドのようなものです...対話性を最小限にしたいと思います。プラグインの設定のメッセージは考慮する価値がありますが。
ラースト、

私はそれについてあまり考えないでしょう。ユーザーsysがデフォルト値でそれを実行できない場合は、何をすべきかをユーザーに伝えてください。私が言ったように:可能性は無限であり、コードまたはサポートを介してこれをトラブルシューティングしようとするために続けるべき結果が何であるかを伝えるだけでいいのです。
カイザー、

4

プラグインがファイル/フォルダーを作成するようにするだけです:私のプラグインもそれを行いました、そして私はさまざまなユーザーのファイル許可に関する多くの問題に遭遇しました。一部はウィンドウ、一部はunix、一部はホストされ、一部は自家製です。プラグインを共有したら、それは私の#1サポートメールでした。

ファイルシステムに触れる必要性を最小限に抑えるためにコードをリファクタリングしました。このような問題を回避するために現在使用しているのはアップロードディレクトリだけです。


ええ、私はそれを理解しています。それが私がわざわざ質問をする理由です。問題の私の現在の概要は、uploadsWPが失敗するのに十分にロックダウンされている場合、プラグインがそれ以上のことを試みて実行する意味がないということです。そして、それがWPに十分であれば、プラグインにも十分です。幸いなことに、私はどこにもキャッシュディレクトリが必要であり、より複雑でエラーが発生しやすいものは必要ありません。
Rarst
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.