疲れていたからだろう。今は元に戻してあるが、/wp/wp-includes/link-template.php の4550行あたりを変更したまま、 #Gemini に教わったことを試していた。そして、久しぶりに設定のディスカッションのアバターの所を見たら、「いしい」のアイコンだらけになっていた。

今は/wp/wp-includes/link-template.php の4550行あたりを元に戻したので直ってる。
少し頭を冷やす。
疲れていたからだろう。今は元に戻してあるが、/wp/wp-includes/link-template.php の4550行あたりを変更したまま、 #Gemini に教わったことを試していた。そして、久しぶりに設定のディスカッションのアバターの所を見たら、「いしい」のアイコンだらけになっていた。
今は/wp/wp-includes/link-template.php の4550行あたりを元に戻したので直ってる。
少し頭を冷やす。
コメント
設定画面のディスカッション欄のアバターが「いしい」だらけになる、functions.phpに記入するコードを #Gemini に作ってもらった。「ひとりネズミ」でログインすると「ひとりネズミ」だらけになり、ログインせずにコメントすると、今は「ミステリーパーソン」のアバターになる。ただ、マストドンでのアイコンは変わってない。
ところで、$avatarはURLとか、その他の情報が詰まった配列だと思っていたのだが、htmlのコードだったのか?希望のものとは違う気がするので、後で作り直してもらう。
function custom_avatar($avatar, $id_or_email, $size, $default, $alt) {
$user_id = 0;
if (is_numeric($id_or_email)) {
$user_id = $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 = $id_or_email->user_id;
}
// ユーザーが存在し、カスタムアバターが設定されている場合のみ処理を行う
if ($user_id && get_user_by('id', $user_id)) {
$custom_avatar_url = get_user_meta($user_id, 'upladed_avatar', true);
if ($custom_avatar_url) {
$avatar = '<img src="' . esc_url($custom_avatar_url) . '" alt="' . esc_attr($alt) . '" class="avatar avatar-' . esc_attr($size) . ' photo" width="' . esc_attr($size) . '" height="' . esc_attr($size) . '" />';
return $avatar;
}
}
// デフォルトのアバターを表示しない
return $avatar;
}
add_filter('get_avatar', 'custom_avatar', 10, 5);
新たに、設定画面のディスカッション欄のアバターが「いしい」だらけになるコードを作った。「ひとりネズミ」でログインすると「ひとりネズミ」だらけになる。
function custom_activitypub_actor_url( $url, $id_or_email, $args ) {
$user_id = 0;
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 ( $id_or_email instanceof WP_User ) {
$user_id = $id_or_email->ID;
}
if ( $user_id ) {
$upladed_avatar_url = get_user_meta( $user_id, 'upladed_avatar', true );
if ( ! empty( $upladed_avatar_url ) ) {
// URLを適切にエスケープ
$url = esc_url_raw( $upladed_avatar_url );
}
}
return $url;
}
add_filter( 'get_avatar_url', 'custom_activitypub_actor_url', 10, 3 );