رفتن به مطلب

کد تصویر پیشفرض کاربران به جای گراواتار


پست های پیشنهاد شده

با سلام. ما میخاهیم برای افزایش سرعت سایت به جای گراواتار یک عکس پیشفرض نمایش بدیم و اگر کاربر گراواتار داشت آن را نشان دهد.

یک کد در سایت تعریف شده که به صورت زیر است ولی این کد فکر کنم بهینه نیست و با گوشی عکس پیشفرض را نمایش نمیدهد. لطفا اگر کد بهتری هست راهنمایی کنید.

<img src="<?php echo $grav_url; ?>" alt=""/>

 

ویرایش شده توسط sir1
لینک به ارسال
  • sir1 عنوان را به کد تصویر پیشفرض کاربران به جای گراواتار تغییر داده است
در 10 دقیقه قبل، asadiy4n گفته است :

سلام اگر درست متوجه شده باشم


https://stackoverflow.com/questions/32755354/check-if-a-user-has-a-gravatar-wordpress

 

در مورد این لینک چیزی متوجه نشدم چون کد نویسی بلد نیستم.

مهندس برای آواتار سفارشی خودمون این کدها در ابزارک استفاده شده:

       if (is_user_logged_in()) {
            $c_user = wp_get_current_user();
            $email = $c_user->user_email;
            $default = "https://acgih.ir/wp-content/uploads/2020/10/avatar.jpg";
            $size = 135;
            $grav_url = "https://www.gravatar.com/avatar/" . md5(strtolower(trim($email))) . "?d=" . urlencode($default) . "&s=" . $size;

و

<div class="vip-widget user">
				<div class="top">
					<a target="_blank" href="https://fa.gravatar.com/">
						<img src="<?php echo $grav_url; ?>" alt=""/>
					</a>

 

لینک به ارسال
  • 2 هفته بعد...

کد ابزارک ما که آواتار و نام کاربران را نشون میده اینه:
 

            <ul>
                <?php

                foreach ($orders as $order) {

                ?>
                    <li class="gc-display-block">
                        <img class="gc-item1 gc-width-40  gc-padding-rl-5" src="<?php echo get_avatar_url($order['id']); ?>" alt="آواتار کاربران">
                        <span class="gc-item2 gc-padding-10  "><?php echo $order['display_name'] ?></span>
                    </li>
                    
                <?php
                }

                ?>
                
            </ul>

حالا با این تفاسیر لطفا کد بالا را ویرایش کنید.

لینک به ارسال
در در ۱۳۹۹/۸/۱ در 11:59، sir1 گفته است :

کد ابزارک ما که آواتار و نام کاربران را نشون میده اینه:
 


            <ul>
                <?php

                foreach ($orders as $order) {

                ?>
                    <li class="gc-display-block">
                        <img class="gc-item1 gc-width-40  gc-padding-rl-5" src="<?php echo get_avatar_url($order['id']); ?>" alt="آواتار کاربران">
                        <span class="gc-item2 gc-padding-10  "><?php echo $order['display_name'] ?></span>
                    </li>
                    
                <?php
                }

                ?>
                
            </ul>

حالا با این تفاسیر لطفا کد بالا را ویرایش کنید.

سلام. منظورتون از orders، سفارشات ووکامرس هست؟ کدی که این $orders رو دادید به این حلقه رو ننوشتید. نمیشه کمکی کرد واقعا. کد رو کامل قرار بدید تا کمک کنیم.

لینک به ارسال
در 1 دقیقه قبل، yazdaniwp گفته است :

سلام. منظورتون از orders، سفارشات ووکامرس هست؟ کدی که این $orders رو دادید به این حلقه رو ننوشتید. نمیشه کمکی کرد واقعا. کد رو کامل قرار بدید تا کمک کنیم.

سلام نه مال ابزارک سایت است که لیست کاربران ویژه را نشون میده. کد کامل پیوست شد

code.txt

لینک به ارسال
در در ۱۳۹۹/۸/۵ در 01:28، sir1 گفته است :

سلام نه مال ابزارک سایت است که لیست کاربران ویژه را نشون میده. کد کامل پیوست شد

code.txt 8.88 kB · 0 دریافت

سلام مجدد. کدتون باید این مدلی باشه:

 <ul>
                <?php

                foreach ( $orders as $order ) :
					$user 	= get_userdata( $order['id'] );
					$avatar = get_avatar( $user->user_email, $size = '48', $default = bloginfo( 'template_directory' ) . '/img/default-avatar.jpg' ); 
                ?>
                    <li class="gc-display-block">
                        <img class="gc-item1 gc-width-40  gc-padding-rl-5" src="<?php echo avatar; ?>" alt="آواتار <?php echo $order['display_name'] ?>">
                        <span class="gc-item2 gc-padding-10  "><?php echo $order['display_name'] ?></span>
                    </li>

                <?php endforeach; ?>
                
            </ul>

با این کد، اگه آواتار موجود باشه نمایشش میده و اگه موجود نباشه فایل dafault-avatar.jpg که داخل مسیر public_html/wp-content/themes/img هست رو جایگزین میکنه.

لینک به ارسال
در 6 ساعت قبل، yazdaniwp گفته است :

سلام مجدد. کدتون باید این مدلی باشه:


 <ul>
                <?php

                foreach ( $orders as $order ) :
					$user 	= get_userdata( $order['id'] );
					$avatar = get_avatar( $user->user_email, $size = '48', $default = bloginfo( 'template_directory' ) . '/img/default-avatar.jpg' ); 
                ?>
                    <li class="gc-display-block">
                        <img class="gc-item1 gc-width-40  gc-padding-rl-5" src="<?php echo avatar; ?>" alt="آواتار <?php echo $order['display_name'] ?>">
                        <span class="gc-item2 gc-padding-10  "><?php echo $order['display_name'] ?></span>
                    </li>

                <?php endforeach; ?>
                
            </ul>

با این کد، اگه آواتار موجود باشه نمایشش میده و اگه موجود نباشه فایل dafault-avatar.jpg که داخل مسیر public_html/wp-content/themes/img هست رو جایگزین میکنه.

یک عکس را در public_html/wp-content/themes/img/default-avatar.jpg قرار دادم و کد بالا را جایگزین کردم ولی کار نمیکنه و خروجیش به صورت زیر است در ابزارک سایت:

avatar.png.ecb3a402d6dd288e968152f763ddc806.png

مشکلی که داره اصلا تصویر آواتار را از مسیر بالا نمیخونه بلکه از مسیر https://en.acgih.ir/wp-content/uploads/2020/10/avatar.jpg میخونه.

مورد بعد اینکه یکی از دوستانم گفت که مشکل Serve resources from a consistent URL در جی تی متریکس حل نمیشه چون در هر صورت یک درخواست میفرسته به گراواتار.

باید بدم به یک کدنویس که کاربران از روی سایت تصویر آپلود کنند که مشکل بالا حل بشه و کلا از گراواتار استفاده نکنیم.

لینک به ارسال
در 10 ساعت قبل، sir1 گفته است :

یک عکس را در public_html/wp-content/themes/img/default-avatar.jpg قرار دادم و کد بالا را جایگزین کردم ولی کار نمیکنه و خروجیش به صورت زیر است در ابزارک سایت:

avatar.png.ecb3a402d6dd288e968152f763ddc806.png

مشکلی که داره اصلا تصویر آواتار را از مسیر بالا نمیخونه بلکه از مسیر https://en.acgih.ir/wp-content/uploads/2020/10/avatar.jpg میخونه.

مورد بعد اینکه یکی از دوستانم گفت که مشکل Serve resources from a consistent URL در جی تی متریکس حل نمیشه چون در هر صورت یک درخواست میفرسته به گراواتار.

باید بدم به یک کدنویس که کاربران از روی سایت تصویر آپلود کنند که مشکل بالا حل بشه و کلا از گراواتار استفاده نکنیم.

بله اشتباه از سمت من بود. این کد رو جایگزین و تست کنید لطفا:

 <ul>
                <?php

                foreach ( $orders as $order ) :
                ?>
                    <li class="gc-display-block">
                        <?php get_avatar( $order['id'], $size = '48', $default = bloginfo( 'template_directory' ) . '/img/default-avatar.jpg' ); ?>
                        <span class="gc-item2 gc-padding-10  "><?php echo $order['display_name'] ?></span>
                    </li>

                <?php endforeach; ?>
                
            </ul>

با این توضیح که فایل تصوی پیشفرض رو در مسیر زیر قرار بدید:

public_html/wp-content/themes/enfold/img/default-avatar.jpg

این کد ریکوئست php میفرسته و مشکلی داخل جی تی متریکس بوجود نمیاره. جی تی متریکس ریکوئستهای بعد از لود صفحه رو بررسی میکنه.

لینک به ارسال
در ۱ ساعت قبل، yazdaniwp گفته است :

بله اشتباه از سمت من بود. این کد رو جایگزین و تست کنید لطفا:


 <ul>
                <?php

                foreach ( $orders as $order ) :
                ?>
                    <li class="gc-display-block">
                        <?php get_avatar( $order['id'], $size = '48', $default = bloginfo( 'template_directory' ) . '/img/default-avatar.jpg' ); ?>
                        <span class="gc-item2 gc-padding-10  "><?php echo $order['display_name'] ?></span>
                    </li>

                <?php endforeach; ?>
                
            </ul>

با این توضیح که فایل تصوی پیشفرض رو در مسیر زیر قرار بدید:


public_html/wp-content/themes/enfold/img/default-avatar.jpg

این کد ریکوئست php میفرسته و مشکلی داخل جی تی متریکس بوجود نمیاره. جی تی متریکس ریکوئستهای بعد از لود صفحه رو بررسی میکنه.

کد بالا را گذاشتم باز عکس پیشفرض را نشون نمیده و به جاش مسیر hrrps://en.acgih.ir/wp-content/themes/enfold را نشان میده

عکس در مسیر public_html/wp-content/themes/enfold/img/default-avatar.jpg قرار دادم.

این تیکه img/default-avatar.jpg را نمیخونه

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...