تصاویر شاخص ( یا همون Thumbnail ) مزایای زیادی برای وب سایت شما دارد از جمله کاهش نرخ bounce rate ، افزایش ترافیک، جلب توجه بازدید کنندگان ، تغییر ظاهر سایت شما به یک وی سایت حرفه ای و…

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

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

با استفاده از کد زیر شما می توانید تصویر اول در هر پست را به عنوان تصویر شاخص تنظیم کنید. فکر کنید شما در وب سایت خود بیش از 100 مطلب دارید که تصویر شاخص ندارند در این صورت می توانید هر مطلب را جداگانه ویرایش کرده و برای آن تصویر شاخصی تنظیم کنید و یا با استفاده از کد زیر کار خود را خیلی خیلی راحتتر کنید

گام اول: لطفا کد زیر را در فایل functions.php کپی کنید:

[php]
function default_image() {
$files = get_children(‘post_parent=’.get_the_ID().’&post_type=attachment
&post_mime_type=image&order=desc’);
if($files) :
$keys = array_reverse(array_keys($files));
$j=0;
$num = $keys[$j];
$image=wp_get_attachment_image($num, ‘large’, true);
$imagepieces = explode(‘”‘, $image);
$imagepath = $imagepieces[1];
$main=wp_get_attachment_url($num);
$template=get_template_directory();
$the_title=get_the_title();
print “<img src=’$main’ alt=’$the_title’ class=’frame’ />”;
endif;
}
[/php]

گام دوم: بایستی کد زیر را در هر فایل قالب که مایلید تصاویر شاخص نمایش داده بشند قرار دهید تا تصاویری که با استفاده از کد بالا به عنوان تصویر شاخص معرفی شده اند نمایش داده شود
برای مثال در فایل single.php برای هر مطلب و در فایل home.php برای صفحه اصلی قرار دهید

[php]
<?php if((function_exists(‘has_post_thumbnail’))&&(has_post_thumbnail())){
echo get_the_post_thumbnail($post->ID);}else{
echo default_image();}?>
[/php]

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

[php]
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
} else { ?>
<img src=”<?php bloginfo(‘template_directory’); ?>/images/default-thumb-img.png”
alt=”<?php the_title(); ?>” />
<?php } ?>
[/php]

در کد بالا بایستی تصویر مربوطه را بانام default-thumb-img.png در پوشه تصاویر قالب خود قرار دهید

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

در بالا آموزش قرار دادن تصویر شاخص در مطالبی که بدون تصویر شاخص منتشر شده اند را مشاهده کردید اما اگر بخواهید همین کار هم برای مطالب قدیمی و هم بصورت خودکار برای هر مطلب جدیدی که در سایت قرار می دهید انجام شود باید کد زیر را در فایل functions.php کپی کنید

[php]
/*function: generate featured image automatically*/
function autogen_featured_img() {
global $post;
if (!has_post_thumbnail($post->ID)) {
$attached_image =
get_children( “post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1” );

if ($attached_image) {
foreach ($attached_image as $attachment_id => $attachment) {
set_post_thumbnail($post->ID, $attachment_id);
}
}
}
}
/*This line is used to generate featured images for all old
posts. Remove this once the default images get generated
for all of the old posts*/
add_action(‘the_post’, ‘autogen_featured_img’);
/* For new upcoming posts, leave them permanently*/
add_action(‘save_post’, ‘autogen_featured_img’);
add_action(‘draft_to_publish’, ‘autogen_featured_img’);
add_action(‘new_to_publish’, ‘autogen_featured_img’);
add_action(‘pending_to_publish’, ‘autogen_featured_img’);
add_action(‘future_to_publish’, ‘autogen_featured_img’);
[/php]

علی محمدیAuthor posts

چندین سال هست که در زمینه طراحی و سئو سایت و دیگر خدمات بصورت حرفه ای کار میکنم. کار در زمینه IT برای من هرگز کسل کننده نبوده و نخواهد بود بلکه نوعی تفریح محسوب شده و هیچگاه از اینگونه فعالیت ها خسته نشده ام...

11 دیدگاه ها

  • با سلام

    من چند بار به دقت دستورات شما را انجام دادم.

    پست جدید تصویر داخل پست را به عنوان تصویر تامنیل در صفحه اول در کنار نوشته قرار نمی‌دهد. و تنها نام نوشته ظاهر می‌شود.

    آیا منظورتان همین است. یا اینکه تصویر شاخص فقط برای اسلایدر بزرگ صفحه عمل مورد استفاده قرار می‌گیرد.

    توجه داشته باشید که معمولا الان دیگر کمتر حالت وبلاگی قدیم مورد استفاده است و بیشتر پست‌ها به صورت ابزارک بعنوان آخرین نوشته یا محبوب‌ترین، و… مورد نمایش قرار می‌گیرد.

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

    ممنون

    • این پست یک تصویر به صورت از پیش تعیین شده رو به عنوان تصویر شاخص پست ها قرار میده در صورتی که شما تصویری رو بارگذاری نکرده باشید.

  • دوست گرامی!

    منظور از این عبارت، در کامنت مندرج در خود کدها، چیست؟ آیا این قسمت از کدها، پس از چند لحظه، که تامنیل پست‌های قدیمی ساخته شد، باید حذف شود؟:

    This line is used to generate featured images for all oldposts. Remove this, once the default images get generated for all of the old posts

    گویا منظور آن است که پس از ایجاد تامنیل‌ها، برای پست‌های قدیمی، این خط از کد باید حذف شود، در حالی که، شما، در متن آموزش خود، هیچ توضیحی درباره‌ی حذف این خط از کد،ندادید.

    این مقاله‌ی شما بسیار در جلوگیری از اتلاف وقت و استفاده‌ی نامناسب از منابع سرور موثر و با ارزش است، و ارزش آن را دارد که لطف نمائید و این آموزش را کامل کنید.

    من خودم حدود دویست پست را که تصویر تامنیل نداشتند، و در صفحه اول، عکس کوچک در کنار مقالات ظاهر نمی‌شد را، یکی یکی، ویرایش کردم، و متاسفانه، چند روز، مدیر هاست، سایت‌های ما را بست. و با زحمت بسیار دوباره سایت‌ها باز شد.

    با دیدن این مقاله، بسیار خوشحال شدم که، مشکل برای همیشه حل خواهد شد، و دیگر مدیران سایت‌ها از دست نویسندگان بی‌دقت، که معمولا تصاویر را در قسمت “زمینه‌هایدلخواه” یادشان می‌رود، حل شده است. اما اکنون ناامید شدم، چون چند بار امتحان کردم. و دستورات شما نتیجه نداد.

    لطفاً راهنمایی فرمائید.

    • گفته شده که بعد از ایجاد تصویر شاخص برای پست های قدیمی این خط رو حذف کنید. پیش فرض بر این گذاشته شده که خواننده کامنت موجود در کدهارو هم میخونه. ممنون بابت نظرتون. سعی میکنیم از این به بعد کامنت های انگلیسی هم ترجمه کنیم واستون. ممنون

  • دوست گرامی!

    در این کدها:

    $num = $keys[$j];
    $image=wp_get_attachment_image($num, ‘large’, true);
    $imagepieces = explode(‘”‘, $image);
    $imagepath = $imagepieces[1];
    $main=wp_get_attachment_url($num);

    آیا به جای wp_ من که پیشوند جداول را عوض کرده‌ام، باید در این کد ها معادلش را بگذارم؟

  • ممنون جامع بود
    میشه کاری کرد که تصویر مثلا بزرگتر از 300 پیکسل یکیش بعنوان شاخص انتخاب بشه.
    اخه تصاویر کوچیک یا حتب ایکون درون پست نیز بعنوان شاخص انتخاب میشن و یکم زشت میشه

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

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

    • در قالب صحیفه ، اگر عکس های دمو رو بررسی کنید و ببینید که خود تم تصاویر رو با چه سایزی گذاشته و شما هم سایز تصویرتون رو به همون تغییر بدید مشکلتون حل میشه. این راحتترین راهه. البته با کدنویسی php هم میشه مشکل رو برطرف کرد که کمی وقت گیره براتون.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *