2

How would I be able to insert data into the post meta table? I know how querying and wpdb works but I have no idea how I can just insert it into the table.

I have these two fields I want to insert ID and Title where Title should become a new post in my Custom Post type Company and ID should be the Content of it. I unfortunately have no idea how to do this.

EDIT: I'm not sure if it HAS to be the post meta table but as long as a new Custom post type post appears.

Thanks in advance!

2 Answers 2

5

You do not need to use the post_meta here, as all the Information is available in posts.

To insert a new post, use wp_insert_post( $post ), and pass the arguments to your $post-array. This function can return a WP_Error-object for Error handling (if the second argument is set to true, returns 0 on error if false), and returns the ID of the inserted post.

See the full list of arguments for wp_insert_post() on the Codex.

$post = array( 'post_content' => $content, // The content you want to have set in the content 'post_title' => $title, // The title of your post. 'post_status' => 'publish', // Whatever status you want to have 'post_type' => 'your_custom_post_type' // the slug of your custom post type ); $thisid = wp_insert_post( $post, true ); // insert the post and allow WP_Error object if ( is_wp_error( $thisid ) ) { // Error handling } else { // the rest of your code, inserting metadata update_post_meta( $thisid, 'your_meta_key', $your_meta_value ); } 
2
  • So this generates everything in the wp_posts table? For example the link etc? Although i'm not sure how i'm going to accomplish the following, say I have queried data from a secondary non WP database(which I have) and say i'd want that data to go into the WP DB. Would I need to add a button on the bottom of it and make an isset that would execute what you said? If so than this is exactly what I need. Commented Mar 13, 2014 at 10:33
  • Also one last thing post_content say the content is a field made with ACF how would I instead call that? Commented Mar 13, 2014 at 10:45
1

You can execute any query as follows and check for success , Let me know if it works.

Praveen

$InsertQuery = "INSERT INTO post_meta VALUES (Enter Values Here)"; //Create a query named InsertQuery $insert = $wpdb->query($InsertQuery); //Execute InsertQuery if($wpdb->insert_id){ echo 'Post Entered Successfully.'; }else{ echo 'Unable to Insert Post.'; } //Check if the Query has run successfully 
1
  • Yes I know this is possible but when I look at the database I notice a few things. What I want is to insert a bit of data into the columns post_title and post_content. BUT I want it to go to a custom post type called Company which means in my VALUES I also have to enter post_type. But what I am wondering is if it's okay to just enter those values and being able to edit them in WP_Admin without having filled in for example the column guid . Commented Mar 13, 2014 at 10:06

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.