صفحه اصلی/آموزش/تنظیم پیش فرض تصویر شاخص در وردپرس به صورت خودکار

تنظیم پیش فرض تصویر شاخص در وردپرس به صورت خودکار

  • نوشته شده در ۶ شهریور ۱۳۹۳
  • 18407 بازدید

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

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

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

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

گام اول: لطفا کد زیر را در فایل functions.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;
}

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

<?php if((function_exists('has_post_thumbnail'))&&(has_post_thumbnail())){
  echo get_the_post_thumbnail($post->ID);}else{
   echo default_image();}?>

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

<?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 } ?>

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

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

در بالا آموزش قرار دادن تصویر شاخص در مطالبی که بدون تصویر شاخص منتشر شده اند را مشاهده کردید اما اگر بخواهید همین کار هم برای مطالب قدیمی و هم بصورت خودکار برای هر مطلب جدیدی که در سایت قرار می دهید انجام شود باید کد زیر را در فایل functions.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');
جشنواره یلدای فناوری اطلاعات برترین در 1397

Warning: array_key_exists() expects parameter 2 to be array, string given in /home/bestitco/public_html/wp-content/plugins/wp-user-avatar/includes/class-wp-user-avatar-functions.php on line 135

Fatal error: Uncaught Error: Cannot use string offset as an array in /home/bestitco/public_html/wp-content/plugins/wp-user-avatar/includes/class-wp-user-avatar-functions.php:145 Stack trace: #0 /home/bestitco/public_html/wp-content/plugins/wp-user-avatar/includes/class-wp-user-avatar-functions.php(347): WP_User_Avatar_Functions->wpua_has_gravatar('admin@bestit.co') #1 /home/bestitco/public_html/wp-includes/class-wp-hook.php(288): WP_User_Avatar_Functions->wpua_get_avatar_filter('<img alt='' src...', 'admin@bestit.co', 70, 'wp_user_avatar', '') #2 /home/bestitco/public_html/wp-includes/plugin.php(203): WP_Hook->apply_filters('<img alt='' src...', Array) #3 /home/bestitco/public_html/wp-includes/pluggable.php(2559): apply_filters('get_avatar', '<img alt='' src...', 'admin@bestit.co', 70, 'wp_user_avatar', '', Array) #4 /home/bestitco/public_html/wp-content/themes/flatco/framework/theme_functions.php(766): get_avatar('admin@bestit.co', '70') #5 /home/bestitco/public_html/wp-content/themes/flatco/single.php(74): about_author( in /home/bestitco/public_html/wp-content/plugins/wp-user-avatar/includes/class-wp-user-avatar-functions.php on line 145