ワードプレスで、プロフィール画像というのは、ほとんど気にも止めていなかったのですが、最近のテーマでは、記事下に「この記事を書いている人」というのを見かけますね。
これって、いいですよね。
記事も信憑性が増しますし、複数の人で運営しているブログなんかは、すごくわかりやすいですよね。
ここに表示される画像がプロフィール画像なのですが、通常、プロフィール画像を設定する場合は、Gravatarかプラグインを使います。
Gravatarの場合、いちいちメールアドレスを登録したりするから結構面倒で、登録途中で断念する人も多いみたいですね。
メールアドレスを登録してヒモ付けして・・・とかやっていると「あ~面倒くさ!」ってことになってしまうんですよね。
それに比べると、プラグインを使う方法は簡単に設定できるんですよね。
よく使われるプラグインは「Wp User Avatar」です。
ワードプレスのアバター画像を変更するには、Gravatar(グラバター)というサービスを介して、アバター画像の変更をするのですが、登録とか設定など、結構めんどうなのです。 アカウントを登録したり、細かな設定するのが面倒で …
これは本当に簡単ですよ。
ただ、
「あまりプラグインの数を増やしたくないんだよな~」
「Gravatarも面倒だし・・」
という方もいますよね。私も同じですが。
なんとか、Phpなんかで出来ないものかと思っていたら、ありましたね。
/////////////////////////////////////// // 自前でプロフィール画像の設定 /////////////////////////////////////// //プロフィール画面で設定したプロフィール画像 if ( !function_exists( 'get_the_author_upladed_avatar_url_demo' ) ): function get_the_author_upladed_avatar_url_demo($user_id){ if (!$user_id) { $user_id = get_the_posts_author_id(); } return esc_html(get_the_author_meta('upladed_avatar', $user_id)); } endif; //ユーザー情報追加 add_action('show_user_profile', 'add_avatar_to_user_profile_demo'); add_action('edit_user_profile', 'add_avatar_to_user_profile_demo'); if ( !function_exists( 'add_avatar_to_user_profile_demo' ) ): function add_avatar_to_user_profile_demo($user) { ?> <h3>プロフィール画像</h3> <table class="form-table"> <tr> <th> <label for="avatar">プロフィール画像URL</label> </th> <td> <input type="text" name="upladed_avatar" size="70" value="<?php echo get_the_author_upladed_avatar_url_demo($user->ID); ?>" placeholder="画像URLを入力してください"> <p class="description">Gravatarよりこちらのプロフィール画像が優先されます。240×240pxの正方形の画像がお勧めです。</p> </td> </tr> </table> <?php } endif; //入力した値を保存する add_action('personal_options_update', 'update_avatar_to_user_profile_demo'); if ( !function_exists( 'update_avatar_to_user_profile_demo' ) ): function update_avatar_to_user_profile_demo($user_id) { if ( current_user_can('edit_user',$user_id) ){ update_user_meta($user_id, 'upladed_avatar', $_POST['upladed_avatar']); } } endif; //プロフィール画像を変更する add_filter( 'get_avatar' , 'get_uploaded_user_profile_avatar_demo' , 1 , 5 ); if ( !function_exists( 'get_uploaded_user_profile_avatar_demo' ) ): function get_uploaded_user_profile_avatar_demo( $avatar, $id_or_email, $size, $default, $alt ) { if ( is_numeric( $id_or_email ) ) $user_id = (int) $id_or_email; elseif ( is_string( $id_or_email ) && ( $user = get_user_by( 'email', $id_or_email ) ) ) $user_id = $user->ID; elseif ( is_object( $id_or_email ) && ! empty( $id_or_email->user_id ) ) $user_id = (int) $id_or_email->user_id; if ( empty( $user_id ) ) return $avatar; if (get_the_author_upladed_avatar_url_demo($user_id)) { $alt = !empty($alt) ? $alt : get_the_author_meta( 'display_name', $user_id );; $author_class = is_author( $user_id ) ? ' current-author' : '' ; $avatar = "<img alt='" . esc_attr( $alt ) . "' src='" . esc_url( get_the_author_upladed_avatar_url_demo($user_id) ) . "' class='avatar avatar-{$size}{$author_class} photo' height='{$size}' width='{$size}' />"; } return $avatar; } endif;
ソースコードが長くて、解説はムリですが、とりあえず、コピペしてみました。
functions.phpに貼り付けるので、その前に必ずバックアップをとっておきましょう。子テーマを使用しているなら必ず子テーマのfunctions.phpに貼り付けましょう。
functions.phpに貼り付けて保存して、ダッシュボードから『ユーザー』⇒『あなたのプロフィール』でプロフィール設定画面を見ると、下のほうにプロフィール画像の項目ができていました。
ここに、好きなプロフィール画像のURLを入れて「プロフィールを保存」をクリックします。
確認してみると、ちゃんとプロフィール画像が変更できているのが確認できました。
右上のプロフィールをみても画像がちゃんと設定されていますね。
『設定』⇒『ディスカッション』で、ディスカッション設定の画面を見ても、アバター画像が変更になっているのが確認できました。
以上、プラグインもGravatarも使わないでプロフィール画像を変更する方法の解説でした。
functions.phpを編集する際は、必ずバックアップをとっておく。
子テーマのfunctions.phpを編集すること。
この2つは守ったほうが良いですよ。