タイトルの通り、メディアギャラリーのアップロードの名前を、ファイルが追加される最初の投稿のタイトルに変更しようとしています。添付ファイルの名前をWordpressで投稿されている投稿タイトルに変更します
私は次の関数を発見し、クライアントのために十分ではありませんでした、ファイルの作成者スラグ
// file renamer (used for EDL images)
function file_renamer($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
global $current_user;
get_currentuserinfo();
return $current_user->user_login . $ext;
}
However-にファイル名を変更するには、それを修正。私はこれにはまだ解決策が見つかりませんでした。どんな助けでも大歓迎です!
編集 - これにも高度なカスタムフィールドを使用しています。ここでは、特定のディレクトリ -
// EDL uploaded images will go to the /edl directory in uploads for these fields.
add_filter('acf/upload_prefilter/name=edl_dealer_logo', 'field_name_upload_prefilter');
add_filter('acf/upload_prefilter/name=edl_image', 'field_name_upload_prefilter');
add_filter('acf/upload_prefilter/name=edl_gallery_image', 'field_name_upload_prefilter');
function field_name_upload_prefilter($file) {
// in this filter we add a WP filter that alters the upload path
add_filter('sanitize_file_name', 'file_renamer', 10);
add_filter('upload_dir', 'field_name_upload_dir');
return $file;
}
// second filter
function field_name_upload_dir($uploads) {
$mydir = '/edl';
// here is where we later the path
$uploads['path'] = $uploads['basedir'].$mydir;
$uploads['url'] = $uploads['baseurl'].$mydir;
$uploads['subdir'] = '/edl';
return $uploads;
}
私は応答janh2を感謝します!しかし、私はリネーム機能の中に投稿情報を得ることができません。私は彼らが標準的なワードプレスのメディアギャラリー機能を使用してアップロードされると信じています。 "uploadedToTitle": "Summer Haven"を含むイメージのアップロード後にコールバックが表示されますが、イメージが既にアップロードされた後に明らかに渡されるので、これを実装する方法がわかりません。 –
私はエディターからトリガーされた一般的なメディアアップロード機能を使ってテストしました。 ajaxリクエストでは、POSTリクエストに 'data [wp-refresh-post-lock] [post_id] = 12345'(=それが所属する投稿のID)を追加します。多分あなたはそれを使うことができますか? – janh
あなたはそうです、私もそれを見ています。私は次のことを試みましたが、何も表示されていません。しかし、あなたの助けをありがとう。 関数file_renamer($ filename){ $ info = pathinfo($ filename); $ ext = empty($ info ['extension'])? '': '。' 。 $ info ['extension']; $ name = basename($ filename、$ ext); 返品$ _POST ["post_ID"] $ ext; } –