رفتن به مطلب

تاپیک جامع تصاویر شاخص با استفاده از هک


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

با سلام خدمت دوستان عزیز

مشکلی که شاید بیشتر ادمینهای وردپرسی داشته باشن اینه که چرا موقع ساخت تصاویر شاخص چند فایل دیگر در پوشه مربوطه ایجاد میشه؟؟

خوب چطور این موضوع را برطرف کنیم !

چطور با استفاده از فقط یک تصویر در پوشه uploads بتوانیم تصاویر متعدد ایجاد کنیم که هم فشار به سرور نیاد و هم سرعت لود صفحه بالا بره !! خب مشکل اول اینه که وقتی تصویرهای شاخص را پاک کنیم باید از تصویر اصلی برای تصاویر شاخص استفاده کنیم !

خب مشکل اینجاس که شاید تصویر آپلود شده 1 مگابایت حجم داشته باشد؟ اگه این فایل روی سایت لود بشه مطمئنا زمانی بیشتری را برای لود می گیره !

قبلا یک هک به نام timthumb.php معرفی شد که به دلایل امنیتی دیگه از اون استفاده نمیشه !البته نسخه جدید این مشکل را برطرف کرده است ولی در کل فشار وارد این هک به سرور بسیار زیاد می باشد.خب پس چکار کنیم؟

بعد از این هک رفتیم سراغ این افزونه get the image که در کل افزونه مسخره ای هست که هیچ کار خاصی نمیکنه و مث تصاویر شاخص خود وردپرس عمل میکنه! والبته یک پلاگین هست که ما هرچه بیشتر در سایتمون از پلاگین استفاده نکنیم از لحاظ امنیتی و فشار بهتر است.

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

هک BFI Thumb :

روش نصب و حذف تصاویر شاخص ساخته شده را با هم توضیح میدهم .

1- مقدار تصاویر شاخص را برابر 0 قرار دهید تا تصاویر شاخص ساخته نشود! (اگر از ووکامرس استفاده می کنید تصاویر شاخص از طریق تنظیمات - محصولات می تونید برابر 0 قرار دهید)

post-294-0-96293600-1424954794_thumb.png

2- دریافت BFI Thumb

3- فایل BFI_thumb.php را در روت پوسته خود قرار دهید.

4- کد زیر را در functions.php پوسته قرار دهید.


<?php
require_once('BFI_Thumb.php');
?>

5- در ادامه کد زیر را هم قرار دهید.بجای premier در خط 2 میتوانید نام قالب یا هر چیز دیگه ای قرار دهید.


<?php
function premier_custom_img( $thumb_size, $image_width, $image_height ) {

global $post;

$params = array( 'width' => $image_width, 'height' => $image_height );

$imgsrc = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID, '' ), $thumb_size );
$custom_img_src = bfi_thumb( $imgsrc[0], $params );

return $custom_img_src;

}

?>

6- جالبترین قسمت اینجاست که شما دیگر مشکل سئو کردن تصاویر و افزودن کلاس را برای تصاویر شاخص ندارید.چرا؟؟؟؟

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


<img src="<?php echo premier_custom_img('full', 300, 400);?>" />

در واقع


<?php echo premier_custom_img('full', 300, 400);?>

وقت آدرس تصویر شما می باشد!! یعنی شما برای کد بالا میتونید دایو و کلاس و عنوان برای سئو یا استایل تصویر و ... ایجاد کنید.

مقدار 300 در کد بالا نمایش دهنده عرض تصویر به پیکسل می باشد

مقدار 400 ارتفاع

و full : استفاده از تصویر اصلی آپلود شده است که اگر شما در مرحله 1 نمیخواستید تصویرهای خود را پاک کنید و مقدار آنها را برابر 0 قرار دهید میتونید از thumbnail,medium,large برای full که سورس اصلی تصویر می باشد استفاده کنید.

توجه داشته باشید که در این کد هم premier را می بینید که باید برابر با اون کلمه ای که در مرحله 5 گفتم مطابقت داشته باشه.

نمونه استفاده شده از تصویر شاخص بجای بکگراند


<div style="background: transparent <?php echo premier_custom_img('full', 300, 400); ?> no-repeat top center;">
...
</div>

نکته دیگه ای که هست چون این هک تصاویر را کش می کند و در آدرس زیر میریزد:


\wp-content\uploads\bfi_thumb

که شما میتونید هر چند یکبار محتویات این پوشه را پاک کنید.(هیچ مشکلی پیش نمی آید)

کد زیر هم میتونه مکانه ذخیره کش را تغییر بده که داخل فایل BFI_Thumb.php هست.


// Change the upload subdirectory to wp-content/uploads/other_dir
@define( BFITHUMB_UPLOAD_DIR, 'other_dir' );

چند نکته :

شاید بعضیا بگن چکاری هست که ما اینو انجام بدیم ؟؟

به چند دلیل:

1- فایلهایی که به صورت پیشفرض ایجاد میشه بعد از مدتی حجم هاست شما را اشغال میکنه .

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

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


<img src="<?php echo onetee_custom_img('full', 300, 200);?>" alt="<?php the_title(); ?>" height="400" weight="300">

اگر سوالی در مورد این تاپیک داشتید همینجا مطرح کنید.

لینک به ارسال

با سلام مجدد

با استفاده از کد زیر می توانید تصویر شاخص دیگری به وردپرس اضافه کرد (یعنی دو تصویر شاخص)


if (class_exists('MultiPostThumbnails')) {
new MultiPostThumbnails(
array(
'label' => 'تصویر طرح',
'id' => 'design-image',
'post_type' => 'post'
)
);
}

کد جایگذاری در قالب


1
<div class="second_image"><?php echo MultiPostThumbnails::the_post_thumbnail(get_post_type(), 'design-image', get_the_ID(), 'thumbnail'); ?></div>

لینک به ارسال

استفاده از تصاویر افزونه advanced costum field با استفاده از BFI thumb برای قالب بجای premier نام زمینه دلخواه خود را بگذارید.


<?php
$params = array( 'width' => 870, 'height' => 478 );
$image = bfi_thumb(get_sub_field('premier'), $params); echo "<img src='$image'/>";
?>

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

با سلام

اول تشکر بابت پست مفید و خوبتون

منظور از استفاده کد :


<img src="<?php echo premier_custom_img('full', 300, 400);?>" />

در حلقه چیه؟ و اینکه باید حتما تگ داده شده که مربوط به تصاویر هست رو پیدا کنیم و کد php مورد نظر رو داخلش بذاریم؟

----------------------------------------------------------------

اگه سوالاتم یک خورده سطح پایینه باید ببخشید چون هنوز با توابع و کد نویسی وردپرس اشنایی خوبی ندارم !!!

لینک به ارسال

با سلام

اول تشکر بابت پست مفید و خوبتون

منظور از استفاده کد :


<img src="<?php echo premier_custom_img('full', 300, 400);?>" />

در حلقه چیه؟ و اینکه باید حتما تگ داده شده که مربوط به تصاویر هست رو پیدا کنیم و کد php مورد نظر رو داخلش بذاریم؟

----------------------------------------------------------------

اگه سوالاتم یک خورده سطح پایینه باید ببخشید چون هنوز با توابع و کد نویسی وردپرس اشنایی خوبی ندارم !!!

جستجو کنید در مورد حلقه وردپرس پیدا می کنید

خواهش اون کد تصویر شاخص پست را نشون میده و باید داخل حلقه باشه

نه داداش این تگ را بزاری تو حلقه تصویر شاخص را نمایش میده

ویرایش شده توسط premier
لینک به ارسال

اها پس حتما باید تگ تصویر شاخص رو داخل کد ها پیدا کنم و تابع رو بهش اضاف کنم!!! ( وقتی این کار رو بکنم تصاویر مثل اینجا میشه؟ تصویری که نشون میده بعنوان تصویر شاخص از بالا پایینش خورده شده ولی میری داخل توضیحات محصول تصویر کامل رو نشون میده !!! ایا اینطوری میشه اگه این تغییرات رو انجام؟ )

ممنون

میرم تست میکنم مشکلی بود باز مزاحم میشم .

ویرایش شده توسط senator_x37
لینک به ارسال
  • 4 ماه بعد...

سلام من قبلا از این اسکریپت استفاده کردم، الان هم استفاده میکنم منتها کدی که در فانکشن مربوط به این اسکریت بود رو اشتباهی حذف کردم، حالا هر جا سرچ زدم توابع رو مثله توابع شما گذاشتن و با اون تابع چند خطی که من در فانکشن داشتم متفاوت بود... حالا مشکلم اینه کسی میتونه اون کد رو برای من بزاره کنه؟

در قسمتای دیگه قالب برای فراخوانی تصویر شاخص از این کد استفاه میکنم که با این کدی که شما گذاشتین متفاوته :


<li class="mv">
<figure><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php
if ( has_post_thumbnail() ){
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full' );
$thumbnailsrc= $src[0];
$params = array( 'width' => 119 ,'height' => 160, 'crop' => true );
?>
<img src="<?php echo bfi_thumb( $thumbnailsrc , $params ) ?>" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" width="119" height="160" />
<?php } else { ?>
<img src="<?php bloginfo('template_directory'); ?>/images/df-tumbnail.png" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" width="119" height="160" />
<?php }?></a><figcaption class="mv-title"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></figcaption>
<div class="mv-cat"><?php
$category = get_the_category();
if ($category) {
echo '<a href="' . get_category_link( $category[0]->term_id ) . '" title="' . sprintf( __( "" ), $category[0]->name ) . '" ' . '>' . $category[0]->name.'</a> ';
}
?></div>
</li>

اقا مشکل حل شد، کدی که گذاشته بودین رو در فانکشن گذاشتم و حل شد!!!

لینک به ارسال
  • 4 سال بعد...

سلام

شما میتوانید این مشکل را برای ما برطرف کنید ؟

هزینه هم مشخص کنید پرداخت میکنیم ..

ما با اپلود 1 عکس 10 عکس در سیستم دایرکت داریم مشاهده میکنیم که ذخیره میشه ..

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

اگر امکانش هست در واتس اپ شماره ... با من تماس بگیرید با تشکر

لینک به ارسال

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

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

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

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

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

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

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

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

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