2017-10-21 10 views
1

WordPressのユーザープロフィールの管理ページに画像をアップロードするフォームを追加しようとしています。このコードを試してみましたが、通常のPHPページでうまくいきました。このワードプレス機能では機能しません。WordPressの管理ページに画像をアップロードすることができません

誰か助けてもらえますか?

function image_up_gall(){ 
?> 
    <form action="#" method="post" enctype="multipart/form-data"> 
    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 
    </form> 

<?php 
$target_dir = "uploads/"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
// Check if image file is a actual image or fake image 
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 
add_action('edit_user_profile', 'image_up_gall'); 
add_action('show_user_profile', 'image_up_gall'); 

答えて

0

あなたはただそこにフィールドを追加することができ、画像を保存する必要はありませんすべてのedit_user_profileshow_user_profileアクションフックのこの怒鳴る

if (isset($_FILES["file"]["name"])) { 

    $destination = $_POST["dir"]; 

    $name = $_FILES["file"]["name"]; 
    $tmp_name = $_FILES['file']['tmp_name']; 
    $error = $_FILES['file']['error']; 

    //echo $name; 
    //echo $tmp_name; 
    //echo $error; 

    move_uploaded_file($_FILES['file']['tmp_name'], $destination.$name); 

} 
0

最初に試すことができます。だから、

function image_up_gall(){ 
?> 

    Select image to upload: 
    <input type="file" name="fileToUpload" id="fileToUpload"> 
    <input type="submit" value="Upload Image" name="submit"> 
<?php 
} 
add_action('edit_user_profile', 'image_up_gall'); 
add_action('show_user_profile', 'image_up_gall'); 

これはWordPressはすでに独自のフォームタグを持っているので、ちょうどあなたがそうするように、フォーム/アップロードIMAGを保存することができedit_user_profile_updatepersonal_options_updateを使用して、それがenctype="multipart/form-data"

第二ステップを持っていることを確認してくださいとあり、このコードを使用します

function save_profile_fields($user_id) { 
$target_dir = "uploads/"; // I recommend to use wp_upload_dir() to get the correct path 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
// Check if image file is a actual image or fake image 
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
      // here the image is uploaded and we can save it to user profile with: 
      update_usermeta($user_id, 'profile_pic', $target_file); 
    } 
} 

add_action('personal_options_update', 'save_profile_fields'); 
add_action('edit_user_profile_update', 'save_profile_fields'); 

をしかし、私はあなたがそれを行うには、ワードプレスのデフォルトのメディアライブラリを使用することをお勧めします、そこに多くのコードがあるので、私はより良いチュートリアルをあなたのリンクを与える:https://rudrastyh.com/wordpress/customizable-media-uploader.html

+0

ご協力ありがとうございますが、動作していません。 – Tarek

+0

どうやって説明できますか? –

+0

画像がアップロードされませんでした。 – Tarek

関連する問題