نمایش تعداد روز و زمان گذشته از انتشار متن در وردپرس

سلام به همه ی برو بچه های وردپرس کار عزیز…
حتما شما هم به سایت هایی مواجه شدید که زمان انتشار مطالبشون رو به صورت” انتشار در 15 روز قبل ” به نمایش قرار میدند! (مثلا همین فیس بوک مخوف! 😀 )
خوب این کار با چند کد ساده قابل انجام هست.

کد زیر زمان انتشار مطلب رو بصورت ( انتشار در 15 روز پیش ) به نمایش قرار میده:

<?php
        $days = round((date('U') - get_the_time('U')) / (60*60*24));
        echo "منتشر شده در " . $days . " روز پیش";
?>

کد زیر یکم نسبت به کد بالا کمی تا قسمتی ابری پیشرفته تره مثلا شما می تونید بگید اگر پست امروز منتشر شده بود بگه ( انتشار در امروز ) و اگر در یک روز پیش منتشر شده بود بگید ( انتشار در دیروز ) و اگر مثلا در 10 روز پیش منتشر شده بود خروجی مثل خروجی کد بالا داشته باشه!

<?php
        $days = round((date('U') - get_the_time('U')) / (60*60*24));
        if ($days==0) {
                echo "امروز منتشر شد";
        }
        elseif ($days==1) {
                echo "دیروز منتشر شد";
        }
        else {
                echo "منتشر شده در" . $days . " روز پیش";
        }
?>

کد سوم بصورت زمان انتشار مطلب رو نشون میده مثلا ( 10 دقیقه پیش ) . برای استفاده کافیه کد زیر رو در فایل functions.php پوسته ی خود کپی کنید:

add_filter('the_time', 'timeago');

function timeago()
{
    global $post;

    $date = $post->post_date;

    $time = get_post_time('G', true, $post);

    $time_diff = time() - $time;

    if ( $time_diff > 0 && $time_diff < 24*60*60 )
        $display = sprintf( __('%s ago'), human_time_diff( $time ) );
    else
        $display = date(get_option('date_format'), strtotime($date) );

    return $display;
}

حالا کد زیر رو در حلقه ی مطلب کپی کنید:

 <?php echo timeago(); ?>

به همین راحتی ، به همین خوشمزگی! 😀

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

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

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

دیدگاه‌های این نوشته جدید ترین ها شاخص

  1. با سلام و خسته نباشید خدمت اساتید من اگر خواسته باشم زمان را به ثانیه به نمایش بدم باید چکاری انجام بدم. بعد هم زمان را به شمسی به نمایش در آورد.
    function timeago()
    {
    global $post;

    $date = $post->post_date;

    $time = get_post_time(‘G’, true, $post);

    $time_diff = time() – $time;

    if ( $time_diff > 0 && $time_diff < 24*60*60 )
    $display = sprintf( __('%s قبل'), human_time_diff( $time ) );
    else
    $display = date(get_option('date_format'), strtotime($date) );

    return $display;
    }

  2. دوستان عزیز کدی که دوستمون آقای حاجی محمدی معرفی کردن مشکلی نداره فقط کافیه بعد از else خط زیر رو اضافه کنید

    displecho jdate(‘d F y H:i’);

    یا به عبارت دیگه خط بالا رو جایگزین خط پایین کنید

    ay = date(get_option(‘date_format’), strtotime($date) );

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

  3. سلاماین کد ها رو کجا باید قرار داد؟

    • 10 سال عضو همیار وردپرس

      سلام
      هر جایی که میخواهید نمایش داده بشن

      با احترام

  4. برای کامنت ها چی؟میشه گذاشت؟

    • 10 سال عضو همیار وردپرس

      سلام
      خیر

  5. سلام ببخشید من اسلایدر شبیه به اسلایدر مطالب مرتبط می خواستم

  6. کد مسعود جان عالی کار کرد
    این کدها فقط شلوغش کردید (ببخشیدا)
    روش سوم که اصلا کار نکرد
    تاریخ مطالب رو به صورت میلادی نشون میداد
    کد اول و دوم فقط مربوط به روز هست ولی اگه مطلب 2 دقیقه پیش منتشر شده باشه چی؟ یا یک ماه قبل چی؟

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

  8. سلام
    ممنون استفاده کردیم!
    لگفا اگه امکان داره اموزش ساخت منو سایت همیار وردپرس رو هم بزارید
    منوی بالا اونجا که نوشته تماس با ما،خانه و…
    ممنون

  9. سلام
    توسط کدهایی که من تو این پست گذاشتم هم میشه این کار رو کرد ( http://www.hamyarwp.com/wordpress/%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D9%85%D8%B9%DA%A9%D9%88%D8%B3-%D8%B2%D9%85%D8%A7%D9%86-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%85%D8%B7%D9%84%D8%A8-%DB%8C%D8%A7-%D9%86%D8%B8%D8%B1/ )

    ساده تر هم هست که…

  10. افزونه نداره…؟