WordPress دا خالىغان باش سۈرەت ئىشلىتىش

ئەلدەربەگ 106 0
- o +
تارقۇت ئېلانى

مەرھابا ، ئەزىز دوستۇم ! باسقان قەدىمىڭىز قۇتلۇق بولسۇن !
WordPress بىلوگ سىستېمىسى avatars نىڭ باش سۈرىتىنى ئېتىراپ قىلىدۇ ، ئابونت ( مېھمان ئوبزورىنى ئۆز ئىچىگە ئالىدۇ ) نىڭ باش سۈرىتىنى ئېلىش ھەممىسى قالدۇرۇپ قويغان ئىلخەتكە ئاساسەن ماسلاشتۇرۇلغان بولىدۇ .
Gevatar باش سۈرىتى تىزىمغا ئالدۇرغان ئابونت يەرلىك ئۆزى بەلگىلىگەن باش سۈرەتنى يوللىسا بولامدۇ ؟
جاۋاب : بولىدۇ .
تىزىملاتقان ئابونتلار ھەرقانداق يەردە ئۈزى بەلگىلىگەن باش سۈرەتنى ئىشلىتەلەيدۇ بۇنى avatars سېستىمىسى ئارقىلىق ئەمەلگە ئاشۇرۇدۇ بىراق بىز بۇ ئۈستىدە توختالماستىن بىلوگ كاپىتانلىرىنىڭ خالىغان باش سۈرەت ئىشلىتىش توغرىسىدا سۆزلەيمىز .
WordPress دا خالىغان باش سۈرەت ئىشلىتىش
تور داشلارغا مەلۇمكى WordPress بىلوگلىرىدا باھا رايۇنىغا كۆز يۈگۈرتسڭىز كۆپ قىسىم تورداشلارنىڭ ئۈزىگە خاس باش سۈرەت ئىشلەتكەنلىكىنى بايقايمىز ، WordPress دا خالىغان باش سۈرەت ئىشلىتىشنى ئەمەلگە ئاشۇرغىنى ئەسلى Simple Local Avatars قىستۇرمىسى بولۇپ قىستۇرما ئەمەلىيەتتە پەقەت بىرلا ھۆججەت بىز بىۋاسىتە كودنى باش تېمىغا تۇنۇتۇپ قويساقلا بولىدۇ ، تۋەندىكى كودنى ئۇسلۇپ غول مۇندەرجىسى ئىچىدىكى functions.php غا بىۋاسىتە چاپلاپ ساقلىۋەتسەكلا بولىدۇ .

//用户自定义头像功能
include (TEMPLATEPATH . '/includes/author-avatars.php');

بۇ يەردە دىققەت قىلىشقا تىگىشلىكى شۇكى ھۆججەت قىسقۇچ نامى includes ھۆججەت نامى author-avatars.php قىلىپ كۆرسىتىلگەن سىز ئۇسلۇپىڭىزغا ئاساسەن ئۆزلەشتۈرۋالسىڭىز بولىدۇ .

<?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) && !empty($id_or_email->user_id)) $user_id = (int)$id_or_email->user_id;
        if (empty($user_id)) return $avatar;
        $local_avatars = get_user_meta($user_id, 'simple_local_avatar', true);
        if (empty($local_avatars) || empty($local_avatars['full'])) return $avatar;
        $size = (int)$size;
        if (empty($alt)) $alt = get_the_author_meta('display_name', $user_id);
        // generate a new size
        if (empty($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', __('يەرلىك باش سۈرەت يوللاش ھوقۇق دائىرىسىنى باشقۇرۇش', 'simple-local-avatars') , array(
            $this,
            'avatar_settings_field'
        ) , 'discussion', 'avatars');
    }
    public function sanitize_options($input) {
        $new_input['simple_local_avatars_caps'] = empty($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 (empty($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 (empty($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>
                        ';
        } else {
            if (empty($profileuser->simple_local_avatar)) echo '<span class="description">' . __('تېخى يەرلىك باش سۈرىتى تەسىس قىلىنمىغان ، Gravatar.com تور بېكىتىگە كىرىڭ . ', 'simple-local-avatars') . '</span>';
            else echo '<span class="description">' . __('سىزدە باش سۈرەت يوللاش ھوقۇقى يوق ، ئەگەر يەرلىك باش سۈرەتنى ئۆزگەرتىشكە توغرا كەلسە ، بېكەت باشقۇرغۇچى بىلەن ئالاقىلىشىڭ .', 'simple-local-avatars') . '</span>';
        }
?>
            </td>
        </tr>
    </table>
    <script type="text/javascript">var form = document.getElementById('your-profile');form.encoding = 'multipart/form-data';form.setAttribute('enctype', 'multipart/form-data');</script>
    <?php
    }
    public function edit_user_profile_update($user_id) {
        if (!isset($_POST['_simple_local_avatar_nonce']) || !wp_verify_nonce($_POST['_simple_local_avatar_nonce'], 'simple_local_avatar_nonce')) //security
        return;
        if (!empty($_FILES['simple-local-avatar']['name'])) {
            $mimes = array(
                'jpg|jpeg|jpe' => 'image/jpeg',
                'gif' => 'image/gif',
                'png' => 'image/png',
                'bmp' => 'image/bmp',
                'tif|tiff' => 'image/tiff'
            );
            // front end (theme my profile etc) support
            if (!function_exists('wp_handle_upload')) require_once (ABSPATH . 'wp-inc/includes/file.php');
            $this->avatar_delete($user_id); // delete old images if successful
            // need to be more secure since low privelege users can upload
            if (strstr($_FILES['simple-local-avatar']['name'], '.php')) wp_die('For security reasons, the extension ".php" cannot be in your file name.');
            $this->user_id_being_edited = $user_id; // make user_id known to unique_filename_callback function
            $avatar = wp_handle_upload($_FILES['simple-local-avatar'], array(
                'mimes' => $mimes,
                'test_form' => false,
                'unique_filename_callback' => array(
                    $this,
                    'unique_filename_callback'
                )
            ));
            if (empty($avatar['file'])) { // handle failures
                switch ($avatar['error']) {
                    case 'File type does not meet security guidelines. Try another.':
                        add_action('user_profile_update_errors', create_function('$a', '$a->add("avatar_error",__("ئۈنۈملۈك رەسىم ھۆججىتىنى چىقىرىڭ .","simple-local-avatars"));'));
                        break;

                    default:
                        add_action('user_profile_update_errors', create_function('$a', '$a->add("avatar_error","<strong>".__("باش سۈرەتنى يوللاش جەريانىدا تۆۋەندىكى خاتالىقلار كۆرۈلدى : ","simple-local-avatars")."</strong> ' . esc_attr($avatar['error']) . '");'));
                }
                return;
            }
            update_user_meta($user_id, 'simple_local_avatar', array(
                'full' => $avatar['url']
            )); // save user information (overwriting old)

        } elseif (!empty($_POST['simple-local-avatar-erase'])) {
            $this->avatar_delete($user_id);
        }
    }
    /**
     * remove the custom get_avatar hook for the default avatar list output on options-discussion.php
     */
    public function avatar_defaults($avatar_defaults) {
        remove_action('get_avatar', array(
            $this,
            'get_avatar'
        ));
        return $avatar_defaults;
    }
    /**
     * delete avatars based on user_id
     */
    public function avatar_delete($user_id) {
        $old_avatars = get_user_meta($user_id, 'simple_local_avatar', true);
        $upload_path = wp_upload_dir();
        if (is_array($old_avatars)) {
            foreach ($old_avatars as $old_avatar) {
                $old_avatar_path = str_replace($upload_path['baseurl'], $upload_path['basedir'], $old_avatar);
                @unlink($old_avatar_path);
            }
        }
        delete_user_meta($user_id, 'simple_local_avatar');
    }
    public function unique_filename_callback($dir, $name, $ext) {
        $user = get_user_by('id', (int)$this->user_id_being_edited);
        $name = $base_name = sanitize_file_name(substr(md5($user->user_login) , 0, 12) . '_avatar');
        $number = 1;
        while (file_exists($dir . "/$name$ext")) {
            $name = $base_name . '_' . $number;
            $number++;
        }
        return $name . $ext;
    }
}
$simple_local_avatars = new Simple_Local_Avatars;
function get_simple_local_avatar($id_or_email, $size = '96', $default = '', $alt = false) {
    global $simple_local_avatars;
    $avatar = $simple_local_avatars->get_avatar('', $id_or_email, $size, $default, $alt);
    if (empty($avatar)) $avatar = get_avatar($id_or_email, $size, $default, $alt);
    return $avatar;
}
?>

پىقەت چۈشۈنەلمىدىم دىگەنلەر ھۆججەت چۈشۈرۈش ئورنى [aru_16] چاخچاق ھە [aru_17] خاپا بۇلاپ قالماڭ ماقما ...

چۈشۈرۈش
  ھۆججەت نامى : author-avatars  ھۆججەت سىغىمى : 12KB
  چۈشەندۈرلىشى : باش سۈرەت بەلگىلەش كودى
  چۈشۈرۈش ئادرىسى : چۈشۈرۈش

تارقۇت ئېلانى
باھا يوللاش جاۋاپ