0

フォームが送信された投稿の ID を追加しようとしているカスタム wp データベースがあります。

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