반응형
아바타에서 BuddyPress 활동 ID 가져오기
사용자가 새로운 아바타를 업로드하면 해당 아바타가 액티비티 월에 게시됩니다.userId를 사용하여 이 액티비티 ID를 취득하려면 어떻게 해야 합니까?
내 생각에 유일한 방법은 직접 쿼리를 만드는 것 같아, 맞지?
해당 액티비티를 취득하기 위한 쿼리를 작성할 수 있습니다.아바타가 업로드된 후에 호출되는 필터도 있습니다(나중에 설명).
<?php
global $wpdb;
$query = "SELECT * FROM {$wpdb->prefix}bp_activity WHERE " .
"`type` = 'new_avatar' AND `user_id` = %d " .
"ORDER BY `date_recorded` DESC LIMIT 1";
$result =
$wpdb->get_row(
$wpdb->prepare($query, $user_id)
);
if ($result) {
// found an activity item for avatar upload
var_dump($result);
} else {
// user has not uploaded an avatar
}
결과는 다음과 같습니다.
stdClass Object
(
[id] => 2 <-- this is the activity ID
[user_id] => 1
[component] => profile
[type] => new_avatar
[action] => admin changed their profile picture
[content] =>
[primary_link] => http://example.com/wordpress/members/admin/
[item_id] => 0
[secondary_item_id] => 0
[date_recorded] => 2016-03-29 04:41:53
[hide_sitewide] => 0
[mptt_left] => 0
[mptt_right] => 0
[is_spam] => 0
)
이 액티비티가 발생했을 때 호출되는 후크할 수 있는 액션이 있습니다.그렇다.xprofile_avatar_uploaded
두 개의 매개 변수를 통과합니다.$item_id
(사용자 ID) 및$type
(예: 크롭 또는 카메라).이 필터는 아바타가 업로드된 후에 실행됩니다.
기능 중 어딘가에 다음과 같이 추가합니다.
add_action('xprofile_avatar_uploaded', 'callback');
function callback($user_id, $type)
{
// $user_id uploaded new avatar
}
전화도 할 수 있더군요.
$img = bp_get_activity_avatar(['user_id' => $user_id]);
HTML로 아바타를 표시할 수 있습니다.저장 장소:wp-content/uploads/avatars
.
다음 연락처도 있습니다.
$url = bp_core_fetch_avatar(['item_id' => $user_id, 'html' => false]);
아바타의 완전한 URL을 얻을 수 있습니다.
언급URL : https://stackoverflow.com/questions/36243484/get-the-buddypress-activity-id-from-the-avatar
반응형
'programing' 카테고리의 다른 글
Yooman과 Angular JS를 사용하여 E2E 테스트와 유닛 테스트를 모두 자동화하려면 어떻게 해야 합니까? (0) | 2023.03.06 |
---|---|
Java에서의 XLS/CSV로의 JSON 변환 (0) | 2023.03.01 |
AngularJ: 모든 폼 오류 나열 (0) | 2023.03.01 |
서비스, 지침 및 모듈의 차이점은 무엇입니까? (0) | 2023.03.01 |
jar 실행 시 정적 콘텐츠를 포함하는 Spring Boot 프로젝트가 404 생성 (0) | 2023.03.01 |