从前台上传头像

时间:2011-08-11 作者:EnexoOnoma

在codepad链接中,您可以找到我在前端用来编辑配置文件的内容。http://codepad.org/QJjDEA7p

代码正在运行(我从How to edit a user profile on the front end? 并更改一些内容以使我能够正确工作)。

我已经安装了简单的本地头像插件,允许上传头像,但如何修改代码,使其也可以从前端下载?我在下面找到了这些,我测试了它们,显示了上载按钮,没有显示当前的头像,也不允许我更改它。

谢谢你在这方面的帮助。

do_action(\'show_user_profile\');
do_action(\'edit_user_profile\');

do_action(\'personal_options_update\');
do_action(\'edit_user_profile_update\');
更新

对于一个有效的例子,有50英镑的悬赏。不幸的是,我无法让Bainernet的示例也能用用户Avatar插件进行测试,我真的被这个问题困住了,无法找到解决方案。

3 个回复
最合适的回答,由SO网友:Bainternet 整理而成

你只需要这些钩子中的一个show_user_profile 显示额外字段和personal_options_update 要更新,请尝试:

<?php
ob_start();
include_once("../../../wp-load.php");
get_header(); 

/* Get user info. */

global $current_user, $wp_roles;
get_currentuserinfo();

/* Load the registration file. */
require_once( ABSPATH . WPINC . \'/registration.php\' );

/* If profile was saved, update profile. */
if ( \'POST\' == $_SERVER[\'REQUEST_METHOD\'] && !empty( $_POST[\'action\'] ) && $_POST[\'action\'] == \'update-user\' ) {

    /* Update user password. */
    if ( !empty($_POST[\'pass1\'] ) && !empty( $_POST[\'pass2\'] ) ) {
        if ( $_POST[\'pass1\'] == $_POST[\'pass2\'] )
            wp_update_user( array( \'ID\' => $current_user->id, \'user_pass\' => esc_attr( $_POST[\'pass1\'] ) ) );
        else
            $error = __(\'The passwords you entered do not match.  Your password was not updated.\', \'profile\');
    }



    /* Update user information. */
    if ( !empty( $_POST[\'url\'] ) )
        update_usermeta( $current_user->id, \'user_url\', esc_url( $_POST[\'url\'] ) );
    if ( !empty( $_POST[\'email\'] ) )
        update_usermeta( $current_user->id, \'user_email\', esc_attr( $_POST[\'email\'] ) );
    if ( !empty( $_POST[\'first-name\'] ) )
        update_usermeta( $current_user->id, \'first_name\', esc_attr( $_POST[\'first-name\'] ) );
    if ( !empty( $_POST[\'last-name\'] ) )
        update_usermeta($current_user->id, \'last_name\', esc_attr( $_POST[\'last-name\'] ) );
    if ( !empty( $_POST[\'yim\'] ) )
        update_usermeta($current_user->id, \'yim\', esc_attr( $_POST[\'yim\'] ) );
    if ( !empty( $_POST[\'description\'] ) )
        update_usermeta( $current_user->id, \'description\', esc_attr( $_POST[\'description\'] ) );

    //extra fields (simple local avatars ....)
        do_action(\'personal_options_update\', $current_user->id);

    /* Redirect so the page will show updated info. */
    if ( !$error ) {


header("Location: ".$_SERVER[\'PHP_SELF\']);

        exit;
ob_flush();
    }
}
?>


        <div id="post-<?php the_ID(); ?>">
            <div class="entry-content entry">
                <?php the_content(); ?>
                <?php if ( !is_user_logged_in() ) : ?>
                        <p class="warning">
                            <?php _e(\'You must be logged in to edit your profile.\', \'profile\'); ?>
                        </p><!-- .warning -->
                <?php else : ?>
                    <?php if ( $error ) echo \'<p class="error">\' . $error . \'</p>\'; ?>
                    <form method="post" id="adduser" action="<?php the_permalink(); ?>">
                        <p class="form-username">
                            <label for="first-name"><?php _e(\'First Name\', \'profile\'); ?></label>
                            <input class="text-input" name="first-name" type="text" id="first-name" value="<?php the_author_meta( \'user_firstname\', $current_user->id ); ?>" />
                        </p><!-- .form-username -->
                        <p class="form-username">
                            <label for="last-name"><?php _e(\'Last Name\', \'profile\'); ?></label>
                            <input class="text-input" name="last-name" type="text" id="last-name" value="<?php the_author_meta( \'user_lastname\', $current_user->id ); ?>" />
                        </p><!-- .form-username -->
                        <p class="form-email">
                            <label for="email"><?php _e(\'E-mail *\', \'profile\'); ?></label>
                            <input class="text-input" name="email" type="text" id="email" value="<?php the_author_meta( \'user_email\', $current_user->id ); ?>" />
                        </p><!-- .form-email -->
                        <p class="form-url">
                            <label for="url"><?php _e(\'Website\', \'profile\'); ?></label>
                            <input class="text-input" name="url" type="text" id="url" value="<?php the_author_meta( \'user_url\', $current_user->id ); ?>" />
                        </p><!-- .form-url -->
                        <p class="form-yim">
                            <label for="yim">yahoo</label>
                            <input class="text-input" name="yim" type="text" id="yim" value="<?php the_author_meta( \'yim\', $current_user->id ); ?>" />
                        </p><!-- .form-yim -->
                        <p class="form-password">
                            <label for="pass1"><?php _e(\'Password *\', \'profile\'); ?> </label>
                            <input class="text-input" name="pass1" type="password" id="pass1" />
                        </p><!-- .form-password -->
                        <p class="form-password">
                            <label for="pass2"><?php _e(\'Repeat Password *\', \'profile\'); ?></label>
                            <input class="text-input" name="pass2" type="password" id="pass2" />
                        </p><!-- .form-password -->
                        <p class="form-textarea">
                            <label for="description"><?php _e(\'Biographical Information\', \'profile\') ?></label>
                            <textarea name="description" id="description" rows="3" cols="50"><?php the_author_meta( \'description\', $current_user->id ); ?></textarea>
                        </p><!-- .form-textarea -->
                        <?php do_action(\'show_user_profile\',$current_user->id); ?>
                        <p class="form-submit">
                            <?php echo $referer; ?>
                            <input name="updateuser" type="submit" id="updateuser" class="submit button" value="<?php _e(\'Update\', \'profile\'); ?>" />
                            <?php wp_nonce_field( \'update-user\' ) ?>
                            <input name="action" type="hidden" id="action" value="update-user" />
                        </p><!-- .form-submit -->
                    </form><!-- #adduser -->
                    <?php endif; ?>
                </div><!-- .entry-content -->
            </div><!-- .hentry .post -->
            <?php comments_template( \'\', true ); ?>

SO网友:adrian7

也许另一种方法会奏效。我见过一些用户配置文件在前端某处使用主题我的登录插件(Theme My Login plugin(http://wordpress.org/extend/plugins/theme-my-login/ ) 和用户头像(http://wordpress.org/extend/plugins/user-avatar/ );

你也可以在这里找到更多http://wordpress.org/support/topic/custom-edit-profile-page .

SO网友:Sean Lee

试试这个solution “Fask”使用了用户照片插件。

向下滚动并查找Fask的帖子。

结束

相关推荐

Front-End Post Submission

我正在尝试添加一个表单,用户可以从前端提交帖子。我正在学习本教程:http://wpshout。com/wordpress从前端提交帖子/我正在做的是添加this code 到我的一个页面模板。表单显示正常,但当我单击“提交”按钮时,它会显示“Page not found error“”许多评论者说这不起作用。谁能给我指出正确的方向吗?代码是否不完整?有缺陷吗?我做错什么了吗?谢谢Towfiq I。