PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Saturday, February 5, 2022

[FIXED] Adding posts with thumbnail programmatically in WordPress

 February 05, 2022     thumbnails, wordpress     No comments   

Issue

I know I can use the wp_insert_post() function in WordPress to add posts programmatically, but I want to add posts with a thumbnail, and for that matter, also resize/crop the post photo to the correct WordPress sizes.

Is all this possible programmatically, or do I need to do some work manually (i.e. the resizing/cropping)?


Solution

Check out wp_insert_attachment(), found in wp-includes/post.php (Codex article).

So you create your post first using wp_insert_post(), then attach the file, somewhat like this (modified the Codex):

<?php 
    $post_id = wp_insert_post( $my_post_data ); 

    $attach_id = wp_insert_attachment( $attachment, $filename, $post_id );
    $attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
    wp_update_attachment_metadata( $attach_id,  $attach_data );
    set_post_thumbnail( $post_id, $attach_id );
?>

Regarding image resizing/cropping, if you go to your media settings (yoursite.com/wp-admin/options-media.php), you can define custom sizes for your images. Probably not as robust as you're looking for, but if you integrate the output with something like the TimThumb Script, you may get close to what you're looking for.

To see all the variables that the function has, read the commented info in post.php.



Answered By - John K
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing