有没有办法在Wordpress中获取未保存帖子的标题?

时间:2019-03-05 21:47:05

标签: php jquery ajax wordpress

我正在使用WordPress插件,该插件使我可以选择有关自定义帖子类型,分类术语和标题的正确上传文件夹。

帖子保存后,我可以获取各种数据,没问题。但是,例如,如何获取尚未发布的帖子标题?

我尝试了$ _POST,方法是首先在WordPress的标题textarea字段中添加一个名称(因为它没有一个),但这完全破坏了我的上传过滤器,并出现内部错误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_prefilterwp_handle_upload

如果您查看提供的代码,我应该能够抢到key [0] ...,但是问题是key [0]给了我'name'... keys [1]给了我'action' ,keys [2]给我“ wp_nonce”。我不知道为什么我不能正确地获取key [0],看来test.php的$ keys没有更新为key 0正确的值。

1 个答案:

答案 0 :(得分:0)

如果可以通过wp_db使用直接MySQLI,为什么要使用Ajax?

您可以像使用当前发布的方法一样检索它。 如果您使用MySQLI抓取它,则会出现一列“ post_status

https://codex.wordpress.org/Post_Status