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

دسته‌ها : هک ها و کدها, وردپرس, وردپرس علی میرزائی 30 دیدگاه‌ها

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

همونطور که اکثر دوستان اطلاع دارند، وردپرس به صورت پیشفرض همه ی متن یک نوشته رو در خوراک (Feed) سایت نمایش میده. با اینحال، یه قابلیت کاربردی هم وجود داره که می تونید در بخش “تنظیمات>خواندن” با فعال سازی گزینه “خلاصه”، به جای نمایش کل متن، چکیده ای از هر نوشته رو در خروجی نمایش بدید. (مثل تابع the_excerpt)

اما، این حالت یه عیب کوچیک هم داره که: فقط شامل متن میشه و نمی تونه تصاویر رو نمایش بده و در بعضی وبسایت ها که خروجی خوراکشون خوانندگان زیادی رو داره و در شبکه های مختلف اجتماعی به اشتراک گذاشته میشه، معمولا ظاهر خوبی رو ایجاد نمیکنه. به همین خاطر، در پست امروز دنیای وردپرس و برنامه نویسی، قطعه کدی رو آماده کردیم که با افزودن فیلتر (add_filter) به دو تابع the_excerpt_rss و the_content_feed، می تونه تصویر شاخص هر پست رو به خوراک سایت اضافه کنه.

PHP

function featured_image_in_feed( $content ) {
    global $post;
    if( is_feed() ) {
        if ( has_post_thumbnail( $post->ID ) ){
            $output = get_the_post_thumbnail( $post->ID, 'medium', array( 'style' => 'display:block;' ));
            $content = $output . $content;
        }
    }
    return $content;
}
add_filter('the_excerpt_rss', 'featured_image_in_feed');
add_filter('the_content_feed', 'featured_image_in_feed');

جهت استفاده از این قابلیت، قطعه کد بالا رو در فایل “توابع پوسته” (function.php) اضافه کنید و حتما حواستون باشه که این کد باید داخل تگ باز و بسته PHP (<? محل قرارگیری کدها php?>) قرار گرفته باشه.

البته تا یادم نرفته این رو هم اضافه کنم که تو این کد، با تنظیم مقدار medium در فراخوانی تصویر شاخص، سایز متوسط هر تصویر نمایش داده میشه. برای تغییر این سایز میتونید به جای کلید medium، از سایزهای دیگه ای مثل full، large و thumbnail استفاده کنید.

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

  1. سلام خسته نباشید
    من یه مشکل دارم 1 هفتست دنبالشم به نتیجه نرسیدم
    تو انجمن هام گشتم ، ولی دیگه الان مثل قدیم انجمنا فعال نیستو جوابی نگرفتم

    مشکلم اینه، میخوام صفحه فیدم مثل سایت دیجیاتو شه
    http://digiato.com/feed
    فرقش با بقیه اینه که تک داره
    مثل:

    http://digiato.com/wp-content/uploads/2016/07/LG-G5-Logo-AM-AH-1-1600×1067-600×400.jpg

    ،
    پستتونم خوندم
    http://alimir.ir/%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%B4%D8%A7%D8%AE%D8%B5-%D8%A8%D9%87-%D8%AE%D9%88%D8%B1%D8%A7%DA%A9-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3/
    خیلی جاها گشتم ، ولی هر کار میکنم تصویر تو feed سایتم لود میشه

    میشه کمک کنید؟
    تشکر

    توسط saeed پاسخ

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

    توسط جهان پاسخ

  3. سلام داداش علی
    یه سوال داشتم
    میخواستم واسه زمینه دلخواه یه پنل بنویسم مثل این:
    http://www.famo.ir/wp-content/uploads/2015/06/meta-box.jpg
    میشه راهنمایی کنید. اگرم هزینه ای داره تا واریز کنم.
    مرسی از کمکت ، منتظر جوابت هستم …

    توسط محمدحسین پاسخ

    1. سلام محمد حسین جان،
      میتونی از افزونه Advanced Custom Fields استفاده کنی که امکانات و امتیاز خوبی هم داره.
      http://tiny.alimir.ir/0Eu

      توسط علی میرزائی پاسخ

      1. ممنون آقا علی
        بغیر از افزونه راهی نداره که داخل فانکشن قالب بنویسم ؟

        توسط محمدحسین پاسخ

        1. سلام محمد حسین جان.
          متوجه سؤالتون نشدم! برای ویرایش فایل functions که نیازی به افزونه ندارید!

          توسط علی میرزائی پاسخ

  4. سلام آقا علی

    یه سوال ؟

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

    توسط محمدحسین پاسخ

    1. سلام. به جای get_the_post_thumbnail تایع از get_post_meta استفاده کنید.
      http://tiny.alimir.ir/s9k

      توسط علی میرزائی پاسخ

  5. سلام مهندس امیدوارم این مشکل منو حل کنید یقینا میتونید
    امیدوارم بتونم کامل و واضح توضیح بدم مشکلم چیه
    میخام تصویر شاخص به نوشته هایی که تصویر ندارند اضافه کنم مثلا پستهایی بدون عکس دارم میخام تصویر پیش فرضی نوشته بشه که مثلا”تصویر موجود نیست”
    مهندس دستم به دامنت منتظرم زود جواب بدین

    توسط سامی پاسخ

  6. سلام من یه مشکل بزرگ تو فید سایتم دارم که هرکار کردم درست نشد.ارورش اینه:
    XML Parsing Error: XML or text declaration not at start of entity
    Location: http://www.goldandroid.ir/feed/
    Line Number 9, Column 1:<rss version="2.0"
    <rss version="2.0"

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

    توسط علیرضا پاسخ

    1. سلام، این افزونه رو بررسی کنید:
      http://tiny.alimir.ir/Z3p

      توسط علی میرزائی پاسخ

  7. سلام علی جان من میخواستم زمینه دلخواه رو اضافه کنم ، چطور میتونم عکسی که توی زمینه ست شده رو بزارم بجای تصویر شاخص ؟ اسم زمینه دلخواه رو Ax گذاشتم چجوری باید Add کنم ؟

    توسط Ahangbaz پاسخ

    1. سلام، باید از تابع get_post_meta استفاده کنید. توضیحات بیشتر در لینک زیر:
      http://tiny.alimir.ir/jX

      توسط علی میرزائی پاسخ

  8. با سلام
    خواستم از طریق بخش تماس شما بهتون پیام بدم اما ظاهرا وجود نداشت.
    یکی از دوستام طراح مبتدی هستش البته رشتش اصلا کامپیوتر نیست ولی از طریق فیلم های آموزشی رایگانی که در سطح اینترنت وجود داشته با کار طراحی آشنا شده. الان ی قالب دانلود اندروید طراحی کرده برام قالب همه چیزش ردیف و با مرورگر ها ست هستش فقط . فقط قسمت عناوین مطالب خیلی ساده و معمولی و همینطور قالب نظرات. می خواستم بدونم اگه قالب بهتون بدم می تونید برام یه کم رو ظاهر عنوانش کار کنید. چون از قالبی فعلی سایتتون مشخص که خلاقیت بالایی دارید. میتونید قالب و سایت به عنوان نمونه کار خودتون معرفی کنید. سایت هر روز آپدیت میشه و بصورت جدی در خال کار روش هستم. اگه هم این روش قبول ندارید بگید با چه هزینه ای این کار رو انجام میدین.
    آدرس سایت: www.appbest.ir

    توسط مهدی پاسخ

    1. سلام، اتفاقا یه خوبشم موجود! اینم از لینکش: http://alimir.ir/contact-us
      اما در خصوص ویرایش هم چندان توصیه ای ندارم که روی این قالب کار کنید. این قالب از لحاظ ولیدیت و استانداردهای روز طراحی مشکلات زیادی داره و به نظر من ارزش هزینه کردن نداره.
      حالا اگه موافق باشید، میتونیم یه قالب حرفه ای و مناسب رو براتون طراحی کنیم که هم طرح جدیدی داشته باشه و هم اینکه از لحاظ بهینگی و SEO در سایت شما تأثیر مثبتی بذاره. (برای کسب اطلاعات بیشتر در این خصوص، میتونید از طریق فرم تماس ایمیل بزنید)

      توسط علی میرزائی پاسخ

  9. سلام خداقوت ببخشید من یه مشکلی در وردپرسم دارم ممنون میشم کمکم کنید
    میخام یه پست ثابت اوله همه ی صفحاتم داشته باشم که ظاهرش با بقیه پستام فرق داشته باشه! راهی هست؟
    ممنون از سایت خوبتون

    توسط رضا پاسخ

    1. سلام، ساده ترین راه اینه که در هنگام ارسال نوشته جدید، در بخش نمایانی گزینه “سنجاق کردن” رو انتخاب کنید تا این نوشته خاص در بالای تمامی نوشته ها قرار بگیره.
      بعد از انجام این کار، به این نوشته یک کلاس جدید با نام sticky اضافه میشه و شما میتونید با استفاده از CSS، به این سلکتور هر استایلی رو خواستید بدید.

      توسط علی میرزائی پاسخ

  10. بسیار عالی بود آموزش فوق العاده ای بود ، جناب میرزایی من توی قرار دادن فید توی دامنه اختصاصی توی فیدبرنر دارم میشه در این مورد هم آموزشی قرار بدید؟

    توسط چت روم پاسخ

    1. سلام، لطفا سؤالتون رو دقیقتر توضیح بدید. (آیا مشکلتون اتصال فید وردپرس به فیدبرنر؟)

      توسط علی میرزائی پاسخ

  11. چگونه میتوان برگه نمونه کارها را از آدرس پیش فرض که :
    www.sitename.com/portfolio_item/demo.php
    را به آدرس دلخواه خود مثلا :
    www.sitename.com/demo.php
    تغییر داد
    ممنون میشم راهنمایی بفرمایید

    توسط امیر علی پاسخ

    1. سلام. میتونید از طریق دستورات Rewrite در فایل htaccess، این کار رو انجام بدید. (برای نمونه کد و آموزش هم منابع فارسی و انگلیسی زیادی هست که باید سرچ کنید)

      توسط علی میرزائی پاسخ

  12. سلام
    ببخشید ئوباره مزاحم شدم.
    ولی من تنظیمات فیذ برنر را بررسی کردم و تنظیمات خاصی برای تصاویر نداره میشه راهنمایی کنید؟

    توسط محمد پاسخ

    1. در بخش “تنظیمات > خواندن > برای هر نوشته در خوراک، نمایش بده“، گزینه “همه‌ی نوشته” رو ذخیره کنید و ببینید که تغییری ایجاد میشه یا نه!

      توسط علی میرزائی پاسخ

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

        توسط محمد پاسخ

  13. سلام
    آقا من تست کردم ولی جواب نداد.
    چه کنم الان؟ خیلی نیاز دارم

    توسط محمد پاسخ

    1. سلام، مشکل چیه؟ تصویر که به فید سایتتون (storefilm.ir) اضافه شده.

      توسط علی میرزائی پاسخ

      1. سلام
        من کدید که شما دادید دقیق در فایل function.php اضافه کردم ولی در خبرنامه فید برنر ارسالی عکس مطالب سایت اضافه نشده است.و مطالب به صورت ساده نمایش داده میشه

        توسط محمد پاسخ

        1. سلام، آدرس فید سایتتون رو در فایرفاکس ببینید: http://storefilm.ir/feed

          توسط علی میرزائی پاسخ

          1. سلام
            ممنون من فید را دیدم در فایر فاکس عکس ها را نشون میده ولی در خبر نامه ای که فید برنر ارسال می کنه عکس ها نیست آیا تنظیمات خاصی داره؟

            توسط محمد

          2. اونطور که به نظر میاد، شما یه سری تغییرات رو در محتوای فید اعمال کردید! (چون به جای توضیحات متنی، لینک ثابت نمایش داده میشه.) به هر صورت این هم نباید مشکلی رو ایجاد کنه، چونکه اصل محتوا به درستی در تگ description قرار گرفته. بهتره که تنظیمات فیدبرنر رو بررسی کنید.

            توسط علی میرزائی

دیدگاه خود را بیان کنید