2017-09-24 16 views
0

私は、別々の画像を取得してショートコードに入れるワードプレスプラグインを作っています。ただし、ショートコードはWP画像フォルダに保存されていない画像を表示しますが、インスタントグラムからは直接表示されます。サーバーのロード時間が大幅に増加します。

私はWP devのフォーラムを検索し、指定された投稿のおすすめ画像を設定するこの関数を見つけました。

function Generate_Featured_Image($image_url, $post_id ){ 
    $upload_dir = wp_upload_dir(); 
    $image_data = file_get_contents($image_url); 
    $filename = basename($image_url); 
    if(wp_mkdir_p($upload_dir['path']))  $file = $upload_dir['path'] . '/' . $filename; 
    else         $file = $upload_dir['basedir'] . '/' . $filename; 
    file_put_contents($file, $image_data); 

    $wp_filetype = wp_check_filetype($filename, null); 
    $attachment = array(
     'post_mime_type' => $wp_filetype['type'], 
     'post_title' => sanitize_file_name($filename), 
     'post_content' => '', 
     'post_status' => 'inherit' 
    ); 
    $attach_id = wp_insert_attachment($attachment, $file, $post_id); 
    require_once(ABSPATH . 'wp-admin/includes/image.php'); 
    $attach_data = wp_generate_attachment_metadata($attach_id, $file); 
    $res1= wp_update_attachment_metadata($attach_id, $attach_data); 
    $res2= set_post_thumbnail($post_id, $attach_id); 
} 

私が欠けているものは、撮った写真がすぐに更新され、それ以降はおすすめ画像が変わらないということです。新しいインスタントグラム写真がアップロードされると、直ちに紹介画像を更新する方法はありますか?またはちょうど1時間ほどです。おかげで、みんな!

答えて

0

..テストしていますが、あなたが file_get_contentsなどのようなあなたの追加のコードを作ることができます見てみることができない。この1

if(!function_exists('Generate_Featured_Image')){ 
    function Generate_Featured_Image($image, $post_id, $setthumb='false', $post_meta = '') { 
     // check to make sure its a successful upload 
     if ($_FILES[$image]['error'] !== UPLOAD_ERR_OK) __return_false(); 

     require_once(ABSPATH . "wp-admin" . '/includes/image.php'); 
     require_once(ABSPATH . "wp-admin" . '/includes/file.php'); 
     require_once(ABSPATH . "wp-admin" . '/includes/media.php'); 

     $attach_id = media_handle_upload($image, $post_id); 

     if ($setthumb) update_post_meta($post_id,'_thumbnail_id',$attach_id); 
     if(!$setthumb && $post_meta!=''){ 
      update_post_meta($post_id, $post_meta, array($attach_id)); 
     } 
     return $attach_id; 
    } 
} 

を試してみてください

関連する問題