我正在使用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_prefilter
和wp_handle_upload
。
如果您查看提供的代码,我应该能够抢到key [0] ...,但是问题是key [0]给了我'name'... keys [1]给了我'action' ,keys [2]给我“ wp_nonce”。我不知道为什么我不能正确地获取key [0],看来test.php的$ keys没有更新为key 0正确的值。
答案 0 :(得分:0)
如果可以通过wp_db使用直接MySQLI,为什么要使用Ajax?
您可以像使用当前发布的方法一样检索它。 如果您使用MySQLI抓取它,则会出现一列“ post_status ”