フォーラムをリニューアルしました!
今後は、新フォーラムをご利用ください。
アバター?はどうやって作成してプロフィールに反映させられますか < SWELLに関する質問
記事の下にでてくる「○○が書きました」というところですが、どうやって画像がでてきますか。
アバター作成はできていると思うのですが…
ブログは2つあります。
どちらも反映されず、アバターは一つしか作成できないのか…と戸惑っています。
ユーザーのアドレスと同じアドレスでGravatarに登録して、そちらでプロフィール画像を設定していただくと反映されるはずです。(WordPressがそういう仕様になっているので、SWELLでもそちらのプロフィール画像を反映させる形になっています。)
こんばんは
Gravatar の場合、複数のサイトを持っていて、同じアドレスでサイトを管理している場合、すべてGravatarに登録したプロフィールアイコンになったかと。個人的にちょっと不便です。
WP User Avatar を使うと、Gravatarを置き換え、自前のサーバにプロフィールアイコンを保存できます。
https://ja.wordpress.org/plugins/wp-user-avatar/
- Gravatar不要
- プロフィールアイコンを別々にできる
- 投稿者が複数いる場合でも、設定で投稿者にアイコンのアップロードを許可できる
「プラグインを使用するのは嫌だけど、Gravatarも使用したくない」というワガママなわたしみたいな人におすすめな方法がありますので共有しておきます。
子テーマのfunction.phpをいじりますので、ファイル編集の際は注意が必要です。しょっちゅう言われることですが、function.phpで編集ミスをすると画面が真っ白になって管理画面にもアクセスできなくなります。よくわからない人はいじらないほうがいいので、genepineさんが紹介してくださっているプラグインを使用するほうが良いでしょう。
以下のコードを子テーマのfunction.phpに追加すると、ダッシュボード>ユーザー>プロフィールのページに画像を設定できる項目が追加されます(参考: 添付画像)
画像のURLを貼り付ける必要がありますが、function.phpを編集できるレベルのユーザーなら簡単に行えると思います。
参考URL:プロフィール画像を自前で設定できるようにするWordPressカスタマイズ方法(寝ログ)
/////////////////////////////////////// // 自前でプロフィール画像の設定 /////////////////////////////////////// //プロフィール画面で設定したプロフィール画像 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;
叡智の結集みたいになっていますが、私もここに便乗して、他に提案した方法を紹介します。
私のように「なるべくWordPressのセオリー通りにいきたくて、Gravatar(WordPress.com への登録)を使用してアバターを生成したいけど、複数のメールアドレスを使いたくない」という方向けの内容です。つまり、私向けの内容です。笑
・プラグイン不使用
・functions.php等へのカスタマイズ不使用
Gmailの場合は使用可能な方法ですが、エイリアスを使用して
メインのメールアドレスが abcdefg123@gmail.com だとしたならば、
abcdefg123+1@gmail.com
abcdefg123+2@gmail.com
…
と複数のメールアドレスを使い分けることができます。
特徴的なのは、これらのアドレス宛のメールがひとつの abcdefg123@gmail.com のメールボックスにまとめて入ります。一方でWordPress.com側としてはあくまでも別メールアドレス扱いになります。
私はこの方法で、個人サイト&各フォーラム用と、対お客様用のアカウントを分けました。
参考URL: https://twitter.com/96ssbike/status/1388463461030535172
にゃーん .
2~3日ほど前に、WP User Avatarプラグインが様変わりしてしまって、アップデートするとProfilePressプラグインとなってしまうことがわかりました。
従来どおりにアバターのみ変更のためでも(設定しだいで?)使えるのかとは思いますが(私はこのプラグインを使用していないので検証していませんが)、今のところ、当該プラグインを使用すると、/prifile/というスラッグを使用すると問題が発生するらしいとのこと。SWELLユーザーさんより教えていただきました。
https://yukiweb.jp/nomado/wp-user-avatar_profilepress/
/profiles/などにスラッグ名を変えることで対処可能とのことです。
もしも、このプラグインを使いたくないということであれば、Eiterさんもしくは私の方法で対応していただけると。
一時的に元に戻したい場合(ずっと戻し続けることは非推奨)、以下のページ一番下の「以前のバージョン」から2.2.16をダウンロードしていただいて、zipファイルをプラグインの新規追加よりアップロードしていただければ、プラグインのダウングレードが可能になります。
https://ja.wordpress.org/plugins/wp-user-avatar/advanced/
テーマとは直接関係ないですが、以前にこのトピックがあったので注意喚起の意味としてこの投稿を残しておきます。
しかし、この投稿がこんなときに役立つとは…笑
にゃーん .
@96ssbike 情報ありがとうございます。
Twitterでも出ていました。突然、完全に機能が違うプラグインにさし変わるのは不誠実で使い続けるのは不安です。
では
https://wordpress.org/plugins/wp-user-avatars/ "s" つきのものがあると書いてありました。
私も今、WordPressの管理画面に英語による注意喚起が出るので調べたところ、「ProfilePress」に行き着きました。「このプラグイン入れたっけかな?」「デフォルトで入っていたっけ?」と思い、色々調べているとき、このページにいきつき、状況を理解しました。
私は複数のサイトを運営しているので、Gravatarに毎回アカウントを作るのは面倒ですし、管理が大変です。WP User Avatarが便利だったのですが、唐突に仕様変更して「ProfilePress」に変えてくる開発者は、ちょっと危険かもしれません。プラグインを外そうか悩んでいます。ただ、その際、プロフィールをどうしようかと。
何か代替があれば、教えてください。
@fukai-takaaki 少し詳しい検証結果をありがとうございます。ここの板のログを注意深く読んでいくと、代替プラグインも見つかります(私のProfilePressの言及の後に)
にゃーん .
追記
ポチッとなした影響でログインページのURLが変更されました。
おすすめしたプラグインがこんなことになるとは、です。
この投稿で書いていただいた方法か、プラグイン検索でいくつか出てきます。
https://ja.wordpress.org/plugins/search/User+Avatar/
WP User Avatarをfork-分岐したプラグインを準備しているそうです。