DIY میڈیا ہوم علامت

اپنے گھر تھیٹر اور ہائی فائی سیٹ اپ کے ڈیزائن اور پیدا کرنے کے لئے الٹی سائٹ.

0ورڈپریس مقامی Gravatar کے کیشے

میں نے لوگوں کے لئے دکھایا اوتار میرے بلاگ پر تبصرہ کرنے والے رکھنا پسند. ورڈپریس gravatar کی سروس natively کی تو یہ بہت آسان ہے کو چالو کرنے کے کی حمایت. تاہم یہ ایک سرمایہ کاری کے ساتھ آتا ہے – ایک اور ڈومین سے بیرونی فائلوں تک رسائی حاصل کرنے کے نئے کی شکل میں اضافی بوجھ وقت کے بہت اضافہ کر دیتی ہے DNS لک اپ, نئی SSL بنانا کنکشنز, وغیرہ. Gravatars کے مقامی طور پر ذخیرہ اور آپ کے اپنے سرور سے خدمت کی ہے کرنے کے لئے یہ اچھا نہیں ہو گا. ٹھیک ہے کہ کیا میں اب کچھ وقت کے لئے کر رہا ہوں ہے, آپ کو کیسے معلوم کرنا چاہتے ہیں تو, پر پڑھیں…

کے معاملے میں آپ کو اب بھی اگر آپ ایسا کرنا چاہتے ہیں کیوں سوچ رہے ہیں, مجھے کچھ اور فوائد پیش کرتے ہیں کرنے دو – مقامی طور پر خدمت کی تصاویر کو ان کی خدمت سے پہلے اکٹھا کیا جا سکتا, مثال کے طور پر میری تصاویر webp ورژن میں تبدیل کر رہے -تمام, اور webp حمایت کرتا ہے جو کسی بھی براؤزر webp ورژن ہو جاتا ہے. یہ ایک بیرونی سرور سے رابطہ کرنے کے لئے نہیں کی کمی کے علاوہ ہے. تاکہ براؤزرز ان کیشے گے مقامی وسائل بھی ان پر قائم ایک کیشنگ ہیڈر ہے کر سکتے ہیں. Gravatar کے ایک بہت طویل کیشے وقت کے لئے فراہم نہیں کرتا.

میں نے پیدا کیا ہے 3 اپنی مرضی کے افعال, جس میں صرف اپنے تھیم کی functions.php میں جگہ. سب سے پہلے آ ورڈپریس get_avatar کے لئے ایک اپنی مرضی کے فلٹر ہے(). جب زور دیا کہ gravatar اور گوگل سے دوسرے گرپس اوتار, اور تیسرے Gravatars کے تازہ کرتا ہے جس روزانہ cronjob کا پیدا کرتا ہے – صورت میں وہ تبدیل کر دیا گیا ہے, یا ایک پہلے دستیاب نہیں اب دستیاب ہے.

آپ اسے اپنے تھیم کے ساتھ ہم آہنگ بنانے کے لئے ایڈجسٹمنٹ کا ایک تھوڑا سا ایسا کرنے کی ضرورت ہو گی – میں استعمال کرتے ہیں “ہڈیوں” فریم ورک آپ کو 3rd کی تقریب میں محسوس کریں گے کے طور پر میں نے اسے فراہم کی ہے کہ کچھ کوڈ دوبارہ استعمال کیا ہے. آپ کو بھی تخلیق کرنے کی ضرورت ہو گی, یا Gravatars کے ذخیرہ کرنے کے لئے راستے کی اپنی مرضی کے مطابق, میرے معاملے میں جس subpath میں تھیم کے فولڈر میں محفوظ کیا جاتا “/کتب خانہ / تصاویر / Gravatars کے /”

/*********************************************\
* صرف مقامی اوتار استعمال get_avatar فلٹر *
\*********************************************/
تقریب bones_gravatar($اوتار, $id_or_email, $سائز, $پہلے سے طے شدہ, $ALT)
{
$root_path = get_template_directory_uri() . '/ لائبریری / تصاویر / Gravatars کے /';
$root_path_local = get_template_directory() . '/ لائبریری / تصاویر / Gravatars کے /';
$gravatar_path = $ root_path . 'default_avatar';
$gravatar_path_hidpi = 'ڈیٹا Gravatar کے-HiDPI کے ="'$ root_path . 'default_avatar-hidpi.png"';

//shamelessly reuse original code to get the e-mail address

$email = '';
اگر ( is_numeric($id_or_email) )
{
$ID = (INT) $id_or_email;
$صارف = get_userdata($ID);
اگر ( $صارف ) $ای میل = $ صارف>USER_EMAIL;
}
elseif ( is_object($id_or_email) )
{
// No avatar for pingbacks or trackbacks
$allowed_comment_types = apply_filters( 'get_avatar_comment_types', سرنی( 'تبصرہ' ) );
اگر ( ! خالی( $id_or_email->comment_type ) && ! in_array( $id_or_email->comment_type, (سرنی) $allowed_comment_types ) ) جھوٹے واپس;
اگر ( !خالی($id_or_email->صارف کی شناخت) )
{
$ID = (INT) $id_or_email->صارف کی شناخت;
$صارف = get_userdata($ID);
اگر ( $صارف) $ای میل = $ صارف>USER_EMAIL;
}
elseif ( !خالی($id_or_email->comment_author_email) )
{
$ای میل = $ id_or_email->comment_author_email;
}
}
اور
{
$ای میل = $ id_or_email;
}

اگر ( !خالی($ای میل) )
{
$email_hash = MD5( strtolower( ٹرم( $ای میل ) ) );
اگر(file_exists($root_path_local . $email_hash . 'PNG کی'))
{
//if we have a local cache then use it
$gravatar_path= $root_path . $email_hash ;
$gravatar_path_hidpi = 'ڈیٹا Gravatar کے-HiDPI کے ="'$ root_path . $email_hash . '-hidpi.png"';
}
}
اگر($سائز >= 47) $اوتار = '<IMG کلاس ="لوڈ Gravatar کے اوتار اوتار - '. $ سائز.' تصویر" چوڑائی ="'$ سائز.'" اونچائی ="'$ سائز.'" ایسآرسی ="' . $gravatar_path . '-hidpi.png" ALT ="Gravatar کے" />';
ورنہ $ اوتار = '<IMG کلاس ="لوڈ Gravatar کے اوتار اوتار - '. $ سائز.' تصویر" چوڑائی ="'$ سائز.'" اونچائی ="'$ سائز.'" ایسآرسی ="' . $gravatar_path . '. PNG" ALT ="Gravatar کے" ' . $gravatar_path_hidpi . '/>';

واپسی $ اوتار;
}

add_filter('get_avatar', 'bones_gravatar', 10, 5);






/***********************\
* Gravatar کے کیشے بنائیں *
\***********************/
تقریب grab_avatar($comment_id,$تبصرہ,$جھوٹے = ریفریش,$ای میل = '')
{
usleep(20);
$root_path = get_template_directory_uri() . '/ لائبریری / تصاویر / Gravatars کے /';
$root_path_local = get_template_directory() . '/ لائبریری / تصاویر / Gravatars کے /';
اگر($== جھوٹے ریفریش) $img_name = MD5( get_comment_author_email($comment_id) );
ورنہ $ img_name MD5 =( $ای میل );
اگر(!file_exists($root_path_local . $img_name . 'PNG کی') || $== سچ ریفریش)
{
اگر($== جھوٹے ریفریش) $bgauthemail = get_comment_author_email();
ورنہ $ bgauthemail = $ ای میل;
//try google first
$domain= explode("@",$bgauthemail);
اگر($ڈومین[1]=="gmail.com")
{
$چوہدری = curl_init();
curl_setopt($چودھری, CURLOPT_SSL_VERIFYPEER, جھوٹے);
curl_setopt($چودھری, CURLOPT_RETURNTRANSFER, سچ ہے);
curl_setopt($چودھری, CURLOPT_URL, "HTTP://picasaweb.google.com/data/entry/api/user/" . $bgauthemail . "?ALT = JSON");
$نتیجہ = curl_exec($چودھری);
curl_close($چودھری);

$پر obj = json_decode($نتیجہ,سچ ہے);
$avatar_from_gmail = $ پر obj['انٹری']["GPhoto $ تھمب نیل"]['$ T'];

$توسیع = strrchr($avatar_from_gmail, '.');

$چوہدری = curl_init($avatar_from_gmail);
curl_setopt( $چودھری, CURLOPT_NOBODY, سچ ہے );
curl_setopt( $چودھری, CURLOPT_RETURNTRANSFER, جھوٹے );
curl_setopt( $چودھری, CURLOPT_HEADER, جھوٹے );
curl_setopt( $چودھری, CURLOPT_FOLLOWLOCATION, سچ ہے );
curl_setopt( $چودھری, CURLOPT_MAXREDIRS, 3 );
curl_exec( $چودھری );
$ہیڈرز = curl_getinfo( $چودھری );
curl_close( $چودھری );
اگر($سرنامے['http_code'] === 200)
{
$چوہدری = curl_init($avatar_from_gmail);
$FP = fopen کی($root_path_local . $img_name . '-hidpi' . $توسیع, 'ڈبلیو بی');
curl_setopt($چودھری,CURLOPT_USERAGENT,'موزیلا / 5.0 (ونڈوز NT 6.1; Win64; x64 کے) AppleWebKit / 537،36 (KHTML, چھپکلی کی طرح) کروم / 39.0.2171.62 سفاری / 537،36 ');
curl_setopt($چودھری, CURLOPT_FILE, $FP);
curl_setopt($چودھری, CURLOPT_HEADER, 0);

curl_exec($چودھری);
curl_close($چودھری);

fclose کے($FP);

$usegravatar = جھوٹے;

$small_image = wp_get_image_editor($root_path_local . $img_name . '-hidpi' . $توسیع);
اگر ( ! is_wp_error( $small_image ) )
{
//چیک جو ایک خالی آدمی کی تصویر نہیں ہے, اگر ایسا ہے, delete it
if (md5_file($root_path_local . $img_name . '-hidpi.jpg') == strtolower("686E5C46776BA0E5C488853C1C0B492C"))
{
//delete
unlink($root_path_local . $img_name . '-hidpi.jpg');
//try gravatar
$usegravatar=true;
}
ورنہ تو (md5_file($root_path_local . $img_name . '-hidpi.jpg') == strtolower("6D4083BE95FB32358A5110F5A83B9979"))
{
//delete
unlink($root_path_local . $img_name . '-hidpi.jpg');
//try gravatar
$usegravatar=true;
}
اور
{
//always convert to png because some plugins expect all gravatars to be pngs
$small_image->کو بچانے کے($root_path_local . $img_name . '-hidpi.png','تصویر / PNG');
$small_image->سائز تبدیل کریں(40, 40, سچ ہے);
$small_image->set_quality( 10 );
$small_image->کو بچانے کے($root_path_local . $img_name . 'PNG کی','تصویر / PNG');
اگر($توسیع ==".JPG") لنک ختم($root_path_local . $img_name . '-hidpi.jpg');
}
}
}

}
//check e-mail isnt a blank generic one
else if($bgauthemail!=="noemail@intensedebate.com" || $usegravatar == سچ)
{
$avatar_from_gravatar = "HTTPS://www.gravatar.com/avatar/" . $img_name . "?ے = 80&D = 404";
$چوہدری = curl_init($avatar_from_gravatar);
curl_setopt( $چودھری, CURLOPT_NOBODY, سچ ہے );
curl_setopt( $چودھری, CURLOPT_RETURNTRANSFER, جھوٹے );
curl_setopt( $چودھری, CURLOPT_HEADER, جھوٹے );
curl_setopt( $چودھری, CURLOPT_FOLLOWLOCATION, سچ ہے );
curl_setopt( $چودھری, CURLOPT_MAXREDIRS, 3 );
curl_exec( $چودھری );
$ہیڈرز = curl_getinfo( $چودھری );
curl_close( $چودھری );
اگر($سرنامے['http_code'] === 200)
{
$چوہدری = curl_init($avatar_from_gravatar);
$FP = fopen کی($root_path_local . $img_name . '-hidpi.png', 'ڈبلیو بی');
curl_setopt($چودھری,CURLOPT_USERAGENT,'موزیلا / 5.0 (ونڈوز NT 6.1; Win64; x64 کے) AppleWebKit / 537،36 (KHTML, چھپکلی کی طرح) کروم / 39.0.2171.62 سفاری / 537،36 ');
curl_setopt($چودھری, CURLOPT_FILE, $FP);
curl_setopt($چودھری, CURLOPT_HEADER, 0);

curl_exec($چودھری);
curl_close($چودھری);

fclose کے($FP);

$small_image = wp_get_image_editor($root_path_local . $img_name . '-hidpi.png');
اگر ( ! is_wp_error( $small_image ) )
{
$small_image->سائز تبدیل کریں(40, 40, سچ ہے);
$small_image->کو بچانے کے($root_path_local . $img_name . 'PNG کی');
}
}
}
}
}
ADD_ACTION('wp_insert_comment', 'grab_avatar');






/********************************************\
* روزانہ پس منظر میں Gravatar کے کیشے تازہ کریں *
\********************************************/
ADD_ACTION( 'WP', 'bones_setup_schedule' );
تقریب bones_setup_schedule() {
اگر ( ! wp_next_scheduled( 'bones_daily_event' ) ) {
wp_schedule_event( وقت(), 'روزانہ', 'bones_daily_event');
}
}

ADD_ACTION( 'bones_daily_event', 'bones_refresh_gravatars' );
تقریب bones_refresh_gravatars()
{
//get list of gravatars somehow
global $wpdb;
$comment_author_emails = $ wpdb->get_results( "واضح منتخب(comment_author_email) FROM " . $wpdb->سابقہ . "تبصروں" );
ہر ایک کے لئے($$ کلید کے طور پر comment_author_emails => $ویل)
{
ہر ایک کے لئے($ویل $ ایک کے طور => $B)
{
grab_avatar('','',سچ ہے,$B);
}
}
}

اپنے آپ سے کچھ خیالات کو مل گیا? تبصرہ کی طرف سے ذیل میں اپنے آپ کو ملوث! آپ کے سبسکرائب کرنا چاہتے ہیں تو سب سے اوپر دائیں مینو پر لنک سبسکرائب استعمال کریں. آپ بھی ذیل سماجی روابط کا استعمال کرتے ہوئے کی طرف سے اپنے دوستوں کے ساتھ اس کا اشتراک کر سکتے ہیں. چیرس.

جواب چھوڑیں