Define page template in wp_insert_post

From the wp_insert_post() documentation, the page_template argument reads as follow: page_template: If post_type is ‘page’, will attempt to set the page template. On failure, the function will return either a WP_Error or 0, and stop before the final actions are called. If the post_type is not ‘page’, the parameter is ignored. You can set the … Read more

tax_input not working wp_insert_post

The most common reason is that you run this code without user context (cron, etc). Within wp_insert_post() context WP will check if user has permissions to a taxonomy. No user equals no permissions equals no terms being assigned. The workaround is to create post first, then assign terms to it. When terms are assigned explicitly … Read more

wp_insert_post add meta_input

meta_input is just a single-dimension array as key => value: ‘meta_input’ => array( ‘name’ => $post[‘name’], ‘city’ => $post[‘city’] ) tax_input is slightly different, with tax as key and an array of values: ‘tax_input’ => array( ‘taxonomy_name’ => array( ‘term’, ‘term2’, ‘term3’ ) ) Note that for tax_input to work, the user currently logged in … Read more

Proper formatting of post_date for wp_insert_post?

If you don’t add a post_date then WordPress fills it automatically with the current date and time. To set another date and time [ Y-m-d H:i:s ] is the right structure. An example below with your code. $postdate=”2010-02-23 18:57:33″; $new_post = array( ‘post_title’ => $title, ‘post_content’ => $description, ‘post_date’ => $postdate, ‘post_status’ => ‘publish’, ‘post_parent’ … Read more

wordpress sanitize array?

Here’s a way to do it with PHP’s array map function: // Good idea to make sure things are set before using them $tags = isset( $_POST[‘tags’] ) ? (array) $_POST[‘tags’] : array(); // Any of the WordPress data sanitization functions can be used here $tags = array_map( ‘esc_attr’, $tags );