我正在尝试向用户配置文件页面添加图像上载程序。我确实在一个基本的注册页面上安装并运行了它,但在添加到函数时,相同但稍作调整的代码不起作用。php。该字段已加载,WordPress允许轻松更新,但在纵断面图中没有显示图像。要获取图像并存储它,我使用
/********************************************************************
Profile Image Upload Field Code
*********************************************************************/
require_once( STYLESHEETPATH . \'/img_upload_resize_crop.php\' );
add_action( \'init\', \'custom_img_uploader\' );
function custom_img_uploader () {
if (isset($_FILES[\'profilePicture\'][\'name\'])!= "" ) {
if ( $_FILES[\'profilePicture\'][\'name\']!="" ) {
$your_image = new _image;
$upload_dir = wp_upload_dir();
//To Upload
$your_image->uploadTo = $upload_dir[\'basedir\'].\'/\';
$upload = $your_image->upload($_FILES[\'profilePicture\']);
//To Resize
$your_image->newPath = $upload_dir[\'basedir\'].\'/thumbs/\';
$your_image->newWidth = 150;
$your_image->newHeight = 200;
$resized = $your_image->resize();
$profilePicture=str_replace($upload_dir[\'basedir\'].\'/thumbs/\', "", $resized );
unlink($upload);
}else{
$profilePicture=\'\';
}
}
}
要以HTML显示字段,我有:
<!-- begin image uploader field -->
<tr>
<th><label for="profilePicture"><?php _e("Profile Image"); ?></label></th>
<td>
<input type="file" name="profilePicture" id="profilePicture" style="float:left;" />
</td>
</tr>
为了保存它,我使用以下方法:
update_user_meta( $user_id, \'userphoto_thumb_height\', 59);
update_user_meta( $user_id, \'userphoto_thumb_width\', 80 );
update_user_meta( $user_id, \'userphoto_thumb_file\', $profilePicture );
有人知道为什么在“纵断面图”中显示此代码:
<?php if(get_the_author_meta( \'userphoto_thumb_file\', $getId )!=""){?>
<img src="<?=$uploads[\'baseurl\'];?>/thumbs/<?=get_the_author_meta( \'userphoto_thumb_file\', $getId );?>" />
不加载存储的图像?
Update I and II
基本调试
Update III 添加后isset()
我更进一步:
[28-Mar-2012 07:14:46] PHP Notice: Undefined variable: profilePicture in /home/user/public_html/wp-content/themes/theme-name/functions.php on line 346
在那条线上我有
update_user_meta( $user_id, \'userphoto_thumb_file\', $profilePicture );
看起来像是即使我有变量profilePicture
根据定义,它不是抓取的,它只是一个通知,似乎不相关,也不会导致上传问题。Update IV
我将图像上传程序代码包装在一个函数中,并将其添加为一个操作。请参见上面的更新代码。我还有一个未定义的变量
profilePicture
图像也没有上传。整个功能。php文件在此处
http://pastebin.com/YGYz3QnvUpdate V
我刚刚意识到,对于profilePicture,我没有一个好的$\\u POST选项。看看@brasofilo在
http://plugins.svn.wordpress.org/user-avatar/trunk/user-avatar.php 我看到了我可以使用的代码,但我需要对其进行大量调整:
<form enctype="multipart/form-data" id="uploadForm" method="POST" action="<?php echo admin_url(\'admin-ajax.php\'); ?>?action=user_avatar_add_photo&step=2&uid=<?php echo $uid; ?>" >
<label for="upload"><?php _e(\'Choose an image from your computer:\',\'user-avatar\'); ?></label><br /><input type="file" id="upload" name="uploadedfile" />
<input type="hidden" name="action" value="save" />
<?php wp_nonce_field(\'user-avatar\') ?>
<p class="submit"><input type="submit" value="<?php esc_attr_e(\'Upload\'); ?>" /></p>
</form>
我只是想知道是否需要一个表单,因为它不适用于其他文本字段,以及我需要如何添加
$user_id
以及如何调整
update_user_meta
Update VI
…制造的
$profilePicture
投稿人推荐的全球
Update VII
考虑使用来自无关媒体的选项
here. 但我仍然需要相当长的时间才能将其集成到当前的功能中。php我会一直打开这个线程,直到我做到这一点。