Есть ли способ получить заголовок несохраненного поста в Wordpress? - PullRequest
0 голосов
/ 06 марта 2019

Я работаю над плагином 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.

1 Ответ

0 голосов
/ 06 марта 2019

Зачем использовать Ajax, если вы можете использовать прямой MySQLI с помощью wp_db?

Вы можете получить его так же, как вы делаете это с опубликованным.Если вы захватите его с помощью MySQLI, появится столбец с именем " post_status "

https://codex.wordpress.org/Post_Status

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...