我有一个自定义的wp数据库我正在尝试添加表单提交的帖子的ID。
function add_custom_settings() {
if(isset($_POST['submitted'])) {
// Get WPDB Object
global $wpdb;
// Table name
$table_name = $wpdb->prefix . "custom";
// Execute query
$wpdb->query(
$wpdb->prepare("INSERT INTO $table_name
(post_id, name, data, date_c, date_m)
VALUES (%d, %s, %s, %d, %d)",
'',
'',
time(),
time()
)
);
// Empty
$static = array();
// ID
$id = mysqli_insert_id();
// DB data
$post_id = the_ID();
$name = $wpdb->escape($static['properties']['title']);
$data = $wpdb->escape(json_encode($static));
// Update
$wpdb->query("UPDATE $table_name SET
post_id = '$post_id',
name = '$name',
data = '$data',
date_m = '".time()."'
ORDER BY id DESC LIMIT 1");
die();
}
}
在查询中,您会注意到我正在尝试将the_ID()
插入post_id列。它不返回ID,我假设因为函数没有与帖子相关联,在表单内部回显the_ID()
,而不是在函数中。
一旦我弄清楚这一点,我终于可以让这件事发挥作用......它很难,希望有人可以帮忙!
表单很长但是这里有一个片段..
<form action="<?php echo $_SERVER['REQUEST_URI']?>" method="post">
<input type="hidden" name="submitted" value="1"
//Form Data Here
<input type="submit" value="<?php the_ID(); ?>" />//echoing the ID here works..
</form>
答案 0 :(得分:1)
我不确定我是否理解正确,但我认为
首先the_ID();
用于显示循环中当前帖子的ID,它不会返回帖子ID的值。
要获取帖子ID:get_the_ID()
。
其次,如果你在循环之外,那么简单地the_ID()
和get_the_ID()
都不会起作用,你必须手动提供post id或者使用GET或POST方法接收它。 / p>