Я работаю над плагином WordPress, который позволяет мне выбрать подходящую папку для загрузки, относящуюся к пользовательскому типу публикации, условиям таксономии и заголовку.
Я могу получить данные любого типа при сохранении сообщения, нет проблем. Но как получить, например, название поста, который еще не был опубликован?
Я попытался $ _POST, добавив сначала имя в поле текстовой области заголовка WordPress (потому что у него его нет), но это полностью сломало мой фильтр загрузки с внутренней ошибкой 500.
У меня есть частично рабочий код. В файле PHP я ставлю в очередь этот сценарий Ajax:
function get_unposted_post_title( $hook ) {
if ( ($hook == 'post-new.php') || ($hook == "post.php" && $_GET['action'] == "edit") ) {
echo "<script>
function posturl(title, url) {
$.ajax({
type: 'POST',
url: url,
data: title,
success: function(title, url) {
console.log(title);
}
});
}
setInterval( function() {
var title = $('#post-title-0').val();
var url = '" .GIA_PLUGIN_URL. "test.php';
posturl(title, url);
}, 5000);
</script>";
}
}
add_action( 'admin_enqueue_scripts', 'get_unposted_post_title', 10, 1 );
Затем в корне моего плагина я создал файл test.php:
<?php
$keys = array_keys($_POST);
if(isset($keys) && !empty($keys[0])) {
print_r( $keys[0] );
}
?>
Эта функция отображает обновленный заголовок в файле console.log, как и ожидалось.
Однако я не могу получить $keys[0]
без сбоя фильтра загрузки. Загруженные файлы правильно перемещаются по обновленному пути моего фильтра, за исключением последней папки, в которой должна быть очищенная версия заголовка сообщения. Я подключаюсь к wp_handle_upload_prefilter
и wp_handle_upload
.
Если вы посмотрите на предоставленный код, я смогу получить ключи [0] ... но проблема в том, что ключи [0] дают мне «имя» ... ключи [1] дают мне «действие» , ключи [2] дают мне «wp_nonce». Я не знаю, почему я не могу правильно захватить ключи [0], похоже, что $ keys моего test.php не обновлены с правильным значением для ключа 0.