在wordpress数据库查询中添加post id?

时间:2013-07-27 04:54:21

标签: php database wordpress

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

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解正确,但我认为

首先the_ID();用于显示循环中当前帖子的ID,它不会返回帖子ID的值。

要获取帖子ID:get_the_ID()

其次,如果你在循环之外,那么简单地the_ID()get_the_ID()都不会起作用,你必须手动提供post id或者使用GET或POST方法接收它。 / p>