Пользовательский фильтр Wordpress не будет работать при использовании REST APIPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Пользовательский фильтр Wordpress не будет работать при использовании REST API

Сообщение Anonymous »

У меня есть собственный фильтр, который перемещает каждый файл по определенным критериям в определенную папку. Фильтр работает нормально, могло быть и лучше, но работает нормально. Каждый раз, когда я загружаю через администратора WP CSV-файл, содержащий пары слов, этот файл перемещается в определенную подпапку.

Код: Выделить всё

add_filter('wp_handle_upload_prefilter', 'move_couple_csv');
function move_couple_csv( $file ) {

if ((strpos($file['name'], 'couples') !== false) &&  (strpos($file['name'], '.csv') !== false)) {

$upload_dir   = wp_upload_dir();
$destinationFilePath = $upload_dir['basedir']."/couples/".$file["name"];
move_uploaded_file($file["tmp_name"], $destinationFilePath);
return $file;
}

return $file;
}
Однако этот фильтр не будет работать, если я использую клиент Python, использующий библиотеку запросов и WP REST API. Мой клиент такой:

Код: Выделить всё

#  Upload the CSV file to the WordPress directory

url = 'MYURL/wp-json/wp/v2/media/'
file_directory = "couples_09_09_2021.csv"
file_binary = {'files': open(file_directory,'rb')}

headers = {
'Accept': 'application/json',
'Content-Type': 'text/csv',
'Authorization': 'Basic blahblah',
'Username': 'username',
'Password':'password',
'Content-Disposition': 'attachment;filename=' + file_directory + ''
}

response = requests.post(url, files=file_binary, headers=headers)
print(response.status_code)
print(response.text)
Верхний код действительно загрузит CSV-файл в папку установки WordPress, однако функция move_couple_csv под хуком wp_handle_upload_prefilter не сработает.
Есть идеи?>

Подробнее здесь: https://stackoverflow.com/questions/691 ... g-rest-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»