このようなパスで media_sideload_image を使用しようとすると http://placekitten.com/300/200 、エラーになります。
ファイルタイプやファイル名がわからないからです。画像をアップロードする最良の方法は?
そうです、デフォルトでは、wp_handle_sideload()
はサイドロードの処理を続けるためにURIに有効な拡張子を必要とするからです。つまり、あなたのロールが ' unfiltered_upload 'という機能を持っていない限り、それはデフォルトで管理者だけに与えられます。
サイドロードを開始する予定のユーザーロールにこの機能を付与するのが適切で安全であると思われる場合は、次のようにします。
if ( $role = get_role( $role_name ) ) $role->add_cap( 'unfiltered_upload' );
これをfunctions.php
から1回実行し、次にコメントアウトを実行します(DB内の役割を変更する必要があるのは1回だけです)。
注:あなたのサイトではユーザーができることができる最も危険なこと _から1層のセキュリティが剥がれてしまうので、このアプローチを本当にお勧めするとは言えません。ファイル。これを行う場合は、ユーザーに公開する前に画像ファイルをサニタイズし、アップロード先のURLを直接渡さないようにしてください。そうしないと、古いWebシェルをアップロードする可能性があります。ハッキング。
警告されました。