Skip to content

Instantly share code, notes, and snippets.

@rintoug
Last active June 11, 2017 06:06
Show Gist options
  • Save rintoug/0195fd98cac04091ed7539d12e45d9d5 to your computer and use it in GitHub Desktop.
Save rintoug/0195fd98cac04091ed7539d12e45d9d5 to your computer and use it in GitHub Desktop.
Insert a post programatically in wordpress
<?php
require_once('ABSOLUTE_PATH/wp-admin/includes/media.php');
require_once('ABSOLUTE_PATH/wp-admin/includes/file.php');
require_once('ABSOLUTE_PATH/wp-admin/includes/image.php');
$media = media_sideload_image($image, $post_id); //$post_id from wp_insert_post
// therefore we must find it so we can set it as featured ID
if(!empty($media) && !is_wp_error($media)){
$args = array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'post_status' => 'any',
'post_parent' => $post_id
);
// reference new image to set as featured
$attachments = get_posts($args);
if(isset($attachments) && is_array($attachments)){
foreach($attachments as $attachment){
// grab source of full size images (so no 300x150 nonsense in path)
$image = wp_get_attachment_image_src($attachment->ID, 'full');
// determine if in the $media image we created, the string of the URL exists
if(strpos($media, $image[0]) !== false){
// if so, we found our image. set it as thumbnail
set_post_thumbnail($post_id, $attachment->ID);
// only want one image
break;
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment