User avatar-ACF fields

时间:2018-05-25 作者:MR.Don\'t know

我正在运行wp multisite,并在我的功能中为我的本地化身使用ACF自定义字段(用户编辑)。我添加的php:

add_action(\'get_avatar\', \'tsm_acf_profile_avatar\', 10, 3);
function tsm_acf_profile_avatar( $avatar, $id_or_email, $size, $default, $alt ) {

$user = \'\';

// Get user by id or email
if ( is_numeric( $id_or_email ) ) {

    $id   = (int) $id_or_email;
    $user = get_user_by( \'id\' , $id );


} elseif ( is_object( $id_or_email ) ) {

    if ( ! empty( $id_or_email->user_id ) ) {
        $id   = (int) $id_or_email->user_id;
        $user = get_user_by( \'id\' , $id );
    }

} else {
    $user = get_user_by( \'email\', $id_or_email );
}

if ( ! $user ) {
    return $avatar;
}

// Get the user id
$user_id = $user->ID;

// Get the file id
$image_id = get_user_meta($user_id, \'avatar\', true); // CHANGE TO YOUR FIELD NAME

// Bail if we don\'t have a local avatar
if ( ! $image_id ) {
    return $avatar;
}

// Get the file size
$image_url  = wp_get_attachment_image_src( $image_id, \'thumbnail\' ); // Set image size by name
// Get the file url
$avatar_url = $image_url[0];
// Get the img markup
$avatar = \'<img alt="\' . $alt . \'" src="\' . $avatar_url . \'" class="avatar avatar-\' . $size . \'" height="\' . $size . \'" width="\' . $size . \'"/>\';

// Return our new avatar
return $avatar;
 }
这在主博客(博客1)上效果很好,但问题是,当我在子网站(博客2)上添加用户时,我的头像字段在博客2中是空的,而且在这之后,如果我在博客2上上传头像,那么博客1上的同一个用户会得到一些随机用户的随机图像。

我不知道为什么会发生这种情况,欢迎提供任何帮助。

非常感谢。

1 个回复
SO网友:Stefan

你试过这样的吗?

用户变量

<?php
// Define user ID
// Replace NULL with ID of user to be queried
$user_id = NULL;

// Example: Get ID of current user
// $user_id = get_current_user_id();

// Define prefixed user ID
$user_acf_prefix = \'user_\';
$user_id_prefixed = $user_acf_prefix . $user_id;
?>
显示头像

<?php $avatar = get_field( \'avatar\', $user_id_prefixed ); ?>
<?php if ( $avatar ) { ?>
    <img src="<?php echo $avatar[\'url\']; ?>" alt="<?php echo $avatar[\'alt\']; ?>" />
<?php } ?>

结束

相关推荐

$wpdb is not initiating

我是wordpress新手,想创建一个插件,但是$wpdb 未启动,我正在使用wordpress版本4.9.4这是我的代码片段global $wpdp; $sql = \'SELECT * From \'.$wpdp->prefix.\' my_first_plugin\'; $result = $wpdp->get_results($sql);

User avatar-ACF fields - 小码农CODE - 行之有效找到问题解决它

User avatar-ACF fields

时间:2018-05-25 作者:MR.Don\'t know

我正在运行wp multisite,并在我的功能中为我的本地化身使用ACF自定义字段(用户编辑)。我添加的php:

add_action(\'get_avatar\', \'tsm_acf_profile_avatar\', 10, 3);
function tsm_acf_profile_avatar( $avatar, $id_or_email, $size, $default, $alt ) {

$user = \'\';

// Get user by id or email
if ( is_numeric( $id_or_email ) ) {

    $id   = (int) $id_or_email;
    $user = get_user_by( \'id\' , $id );


} elseif ( is_object( $id_or_email ) ) {

    if ( ! empty( $id_or_email->user_id ) ) {
        $id   = (int) $id_or_email->user_id;
        $user = get_user_by( \'id\' , $id );
    }

} else {
    $user = get_user_by( \'email\', $id_or_email );
}

if ( ! $user ) {
    return $avatar;
}

// Get the user id
$user_id = $user->ID;

// Get the file id
$image_id = get_user_meta($user_id, \'avatar\', true); // CHANGE TO YOUR FIELD NAME

// Bail if we don\'t have a local avatar
if ( ! $image_id ) {
    return $avatar;
}

// Get the file size
$image_url  = wp_get_attachment_image_src( $image_id, \'thumbnail\' ); // Set image size by name
// Get the file url
$avatar_url = $image_url[0];
// Get the img markup
$avatar = \'<img alt="\' . $alt . \'" src="\' . $avatar_url . \'" class="avatar avatar-\' . $size . \'" height="\' . $size . \'" width="\' . $size . \'"/>\';

// Return our new avatar
return $avatar;
 }
这在主博客(博客1)上效果很好,但问题是,当我在子网站(博客2)上添加用户时,我的头像字段在博客2中是空的,而且在这之后,如果我在博客2上上传头像,那么博客1上的同一个用户会得到一些随机用户的随机图像。

我不知道为什么会发生这种情况,欢迎提供任何帮助。

非常感谢。

1 个回复
SO网友:Stefan

你试过这样的吗?

用户变量

<?php
// Define user ID
// Replace NULL with ID of user to be queried
$user_id = NULL;

// Example: Get ID of current user
// $user_id = get_current_user_id();

// Define prefixed user ID
$user_acf_prefix = \'user_\';
$user_id_prefixed = $user_acf_prefix . $user_id;
?>
显示头像

<?php $avatar = get_field( \'avatar\', $user_id_prefixed ); ?>
<?php if ( $avatar ) { ?>
    <img src="<?php echo $avatar[\'url\']; ?>" alt="<?php echo $avatar[\'alt\']; ?>" />
<?php } ?>