国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

為wordpress添加本地頭像功能代替Gravatar

2024-04-25 20:39:13
字體:
來源:轉載
供稿:網友

目前wordpress網站幾乎都是使用Gravatar全球通頭像來關聯用戶頭像的,但是由于Gravatar的服務器是在國外,國內經常由于某些XXX原因而連接不上,今天就來教大家使用代碼將Gravatar頭像半本地化,那么什么是半本地化呢?也就是通過用戶的郵箱判斷用戶是否擁有Gravatar頭像,如果擁有則使用Gravatar頭像,當用戶擁有本地頭像且擁有Gravatar頭像時,則優先使用本地頭像。

<?php

class Simple_Local_Avatars {

private $user_id_being_edited;

public function __construct() {

add_filter( 'get_avatar', array( $this, 'get_avatar' ), 10, 5 );

add_action( 'admin_init', array( $this, 'admin_init' ) );

add_action( 'show_user_profile', array( $this, 'edit_user_profile' ) );

add_action( 'edit_user_profile', array( $this, 'edit_user_profile' ) );

add_action( 'personal_options_update', array( $this, 'edit_user_profile_update' ) );

add_action( 'edit_user_profile_update', array( $this, 'edit_user_profile_update' ) );

add_filter( 'avatar_defaults', array( $this, 'avatar_defaults' ) );

}

public function get_avatar( $avatar = '', $id_or_email, $size = 96, $default = '', $alt = false ) {

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 ) && ! emptyempty( $id_or_email->user_id ) )

$user_id = (int) $id_or_email->user_id;

if ( emptyempty( $user_id ) )

return $avatar;

$local_avatars = get_user_meta( $user_id, 'simple_local_avatar', true );

if ( emptyempty( $local_avatars ) || emptyempty( $local_avatars['full'] ) )

return $avatar;

$size = (int) $size;

if ( emptyempty( $alt ) )

$alt = get_the_author_meta( 'display_name', $user_id );

// generate a new size

if ( emptyempty( $local_avatars[$size] ) ) {

$upload_path = wp_upload_dir();

$avatar_full_path = str_replace( $upload_path['baseurl'], $upload_path['basedir'], $local_avatars['full'] );

$image_sized = image_resize( $avatar_full_path, $size, $size, true );

// deal with original being >= to original image (or lack of sizing ability)

$local_avatars[$size] = is_wp_error($image_sized) ? $local_avatars[$size] = $local_avatars['full'] : str_replace( $upload_path['basedir'], $upload_path['baseurl'], $image_sized );

// save updated avatar sizes

update_user_meta( $user_id, 'simple_local_avatar', $local_avatars );

} elseif ( substr( $local_avatars[$size], 0, 4 ) != 'http' ) {

$local_avatars[$size] = home_url( $local_avatars[$size] );

}

$author_class = is_author( $user_id ) ? ' current-author' : '' ;

$avatar = "<img alt='" . esc_attr( $alt ) . "' src='" . $local_avatars[$size] . "' class='avatar avatar-{$size}{$author_class} photo' height='{$size}' width='{$size}' />";

return apply_filters( 'simple_local_avatar', $avatar );

}

public function admin_init() {

//load_plugin_textdomain( 'simple-local-avatars', false, dirname( plugin_basename( __FILE__ ) ) . '/localization/' );

register_setting( 'discussion', 'simple_local_avatars_caps', array( $this, 'sanitize_options' ) );

add_settings_field( 'simple-local-avatars-caps', __('Local Avatar Permissions','simple-local-avatars'), array( $this, 'avatar_settings_field' ), 'discussion', 'avatars' );

}

public function sanitize_options( $input ) {

$new_input['simple_local_avatars_caps'] = emptyempty( $input['simple_local_avatars_caps'] ) ? 0 : 1;

return $new_input;

}

public function avatar_settings_field( $args ) {

$options = get_option('simple_local_avatars_caps');

echo '

<label for="simple_local_avatars_caps">

<input type="checkbox" name="simple_local_avatars_caps" id="simple_local_avatars_caps" value="1" ' . @checked( $options['simple_local_avatars_caps'], 1, false ) . ' />

' . __('僅具有頭像上傳權限的用戶具有設置本地頭像權限(作者及更高等級角色)。','simple-local-avatars') . '

</label>

';

}

public function edit_user_profile( $profileuser ) {

?>

<h3><?php _e( '頭像','simple-local-avatars' ); ?></h3>

<table class="form-table">

<tr>

<th><label for="simple-local-avatar"><?php _e('上傳頭像','simple-local-avatars'); ?></label></th>

<td style="width: 50px;" valign="top">

<?php echo get_avatar( $profileuser->ID ); ?>

</td>

<td>

<?php

$options = get_option('simple_local_avatars_caps');

if ( emptyempty($options['simple_local_avatars_caps']) || current_user_can('upload_files') ) {

do_action( 'simple_local_avatar_notices' );

wp_nonce_field( 'simple_local_avatar_nonce', '_simple_local_avatar_nonce', false );

?>

<input type="file" name="simple-local-avatar" id="simple-local-avatar" /><br />

<?php

if ( emptyempty( $profileuser->simple_local_avatar ) )

echo '<span class="description">' . __('尚未設置本地頭像,請點擊“瀏覽”按鈕上傳本地頭像。','simple-local-avatars') . '</span>';

else

echo '

<input type="checkbox" name="simple-local-avatar-erase" value="1" /> ' . __('移除本地頭像','simple-local-avatars') . '<br />

<span class="description">' . __('如需要修改本地頭像,請重新上傳新頭像。如需要移除本地頭像,請選中上方的“移除本地頭像”復選框并更新個人資料即可。<br/>移除本地頭像后,將恢復使用 Gravatar 頭像。','simple-local-avatars') . '</span>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 襄汾县| 拉孜县| 沁水县| 东阿县| 全南县| 曲松县| 旬阳县| 咸阳市| 铜川市| 安岳县| 陆丰市| 商城县| 凤台县| 平利县| 油尖旺区| 泰顺县| 武强县| 安龙县| 武强县| 襄城县| 五河县| 明水县| 广昌县| 崇州市| 蓝田县| 松滋市| 辽源市| 珲春市| 山西省| 乡城县| 莫力| 桂平市| 岚皋县| 金湖县| 蓬溪县| 新乐市| 苏尼特右旗| 句容市| 鸡泽县| 安岳县| 兰考县|