0

WordPress には、グループ内のすべてのユーザーの写真を取得し、それらをつなぎ合わせて合成画像を作成し、それをテーマ フォルダーに保存する次の機能があります。

これは私の開発サーバーでは完全に機能しますが、運用サーバーでは何もしません。

これは権限の問題ですか? 開発サーバーはphp 5.5.12を実行しており、ライブサーバーは5.5.23を実行しているため、問題は発生しません(imagejpegが廃止されたとは思いませんか?)。どちらも最新バージョンの WordPress を実行しています。開発サーバーはWAMP、本番サーバーはLAMPです。

以下の機能:

function group_thumbnail($post_id) {

        // Generates a composite thumbnail, a la Spotify playlists, to use in the group layout.

                $user_portraits = array();
                if(!empty($_POST['wpcf']['allowed-users'])) :
                    $allowed_users = $_POST['wpcf']['allowed-users']; // For the back end
                else : 
                    $allowed_users = get_post_meta($post_id,'wpcf-allowed-users',false); // For the front end
                endif;

                $allowed_users = sort_pictures_by_name($allowed_users);

                $group_size = count($allowed_users);

                if($group_size < 4) : $limit=1; $row_size = 1; endif;
                if($group_size >= 4 && $group_size < 9) : $limit=4; $row_size = 2; endif;
                if($group_size >= 9 && $group_size < 16) : $limit=9; $row_size = 3; endif;
                if($group_size >= 16) : $limit=16; $row_size = 4; endif;
                $square_size = 200/$row_size;
                foreach ($allowed_users as $u_id) :
                    $u_portrait=get_user_meta($u_id, 'wpcf-portrait', true); 
                    $u_file = imagecreatefromjpeg($u_portrait);
                    $user_portraits[] = $u_file;
                endforeach;
                $group_image = imagecreatetruecolor ( 200 , 200 );
                $postion = array('x'=>0,'y'=>0);
                for($i=0; $i<$limit; $i++) :    
                    if($i % $row_size == 0 && $i<>0) : 
                        $postion['x']=0;
                        $postion['y']+=$square_size;
                    endif;  
                    imagecopyresized($group_image,$user_portraits[$i],$postion['x'],$postion['y'],0,0,$square_size,$square_size,180,180);
                    imagedestroy($user_portraits[$i]);
                    $postion['x']+=$square_size;
                endfor;         
                // Output and free from memory
                imagejpeg($group_image,get_template_directory().'/img/groups/'.$post_id.'.jpg',60);
                imagedestroy($group_image);
                clearstatcache();

    }
4

1 に答える 1

1

最終的には非常に単純でした。運用サーバーのフォルダーは書き込み可能ではありませんでした。FTP経由ですぐに整理されました。

于 2016-02-05T15:30:48.660 に答える