0

我有一个自定义 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>
4

1 回答 1

1

我不确定我是否理解正确,但这里是我的想法

Firstthe_ID();用于在循环中显示当前帖子的 ID,它不返回帖子 ID 的值。

要获取帖子 ID,请使用:get_the_ID().

其次,如果您在循环之外,那么既不简单the_ID()也不get_the_ID()行,您必须手动提供 post id 或使用 GET 或 POST 方法接收它。

于 2013-07-29T07:00:59.797 回答