View Single Post
  #26  
Old November 29th, 2014, 09:17 PM
neilmaanan neilmaanan is offline
 
Join Date: Nov 2014
Posts: 5
Default

Quote:
Originally Posted by Eric View Post
Hi,

It seems that this line is not correct:
PHP Code:
delete_post_meta($post->ID"image"); 
It's trying to delete something that doesn't even exist. Therefore the function runs way more often than it ever should.

Here's the updated code which goes in your theme's functions.php file. I've only tested that it works... it has not been tested for security or anything else.

Use at your own risk!

PHP Code:
function postmeta_img_update() {
    
    global 
$post;

    
// If Custom Post Meta Field for a Image/Thumnail Exists
    
if( get_post_meta($post->ID"store_image"true) ) {
    
        
$dfr_featured_image_is_set get_post_meta($post->ID"dfr_featured_image_is_set"true);
        
        if (
$dfr_featured_image_is_set == 'yes') {
            return;
        }

        
// Get Image Location and File Extention
        
$img get_post_meta($post->ID"store_image"true);
        
$ext substr(strrchr($img,'.'),1);

        
// WordPress Upload Directory to Copy to (must be CHMOD to 777)
        
$uploads wp_upload_dir();
        
$copydir $uploads['path']."/";

        
// Code to Copy Image to WordPress Upload Directory (Server Must Support file_get_content/fopen/fputs)
        
$data file_get_contents($img);
        
$filetitle strtolower(str_replace(array(' ''-''.''('')''!''@''#''$''%''^''&''*''_''=''+'), "-"get_the_title()));
        
$file fopen($copydir "$filetitle-$post->ID.$ext""w+");
        
fputs($file$data);
        
fclose($file);

        
// Insert Image to WordPress Media Libraby
        
$filepath $uploads['path']."/$filetitle-$post->ID.$ext";

        
$wp_filetype wp_check_filetype(basename($filepath), null );
        
$attachment = array(
            
'post_mime_type' => $wp_filetype['type'],
            
'post_title' => get_the_title(),
            
'post_content' => 'Image for '.get_the_title(),
            
'post_status' => 'inherit'
        
);

        
wp_insert_attachment($attachment$filepath$post->ID);

        
// Get Attachment ID for Post
        
global $wpdb$attachment_id $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_parent = '$post->ID' AND post_status = 'inherit' AND post_type='attachment' ORDER BY post_date DESC LIMIT 1");

        
// Attached Image as Featured Thumbnail in Post
        
update_post_meta($post->ID"_thumbnail_id"$attachment_id);

        
// Removes Custom Meta Field Image URL. This stop this function running again for the updated post.
        
add_post_meta($post->ID"dfr_featured_image_is_set""yes");

    }
}
add_action('the_post','postmeta_img_update'); 
Eric
Hi Eric, thank you for this. I think it's working to some extent. I am using Swift Theme as my template, the code works but it displays the images at 1px by 1px.

I am starting a new site and testing the featured images first before make it full blown.

The site is fashio.nz

Hope you can help. Thanks