
به اشتراک بگذارید

به اشتراک بگذارید
آموزش وردپرس | بلاگ وبداده
لینکدادن خودکار تصاویر به نوشتهٔ مرتبط در وردپرس
attachment_link در functions.php لینک همهٔ تصاویر را به نوشتهٔ والد تغییر دهید.image_default_link_type حالت لینکِ تصاویرِ جدید را یکبار برای همیشه مشخص کنید.
attachment_link دارد که خروجی آدرس هر پیوست را قابل تغییر میکند. با چند خط کد میگوییم: «اگر این پیوست به یک نوشته یا برگه وصل است، بهجای آدرس صفحهٔ پیوست، آدرس همان والد را برگردان.» کد زیر را در فایل functions.php قالب فرزند یا داخل افزونهٔ Code Snippets قرار دهید:image_default_link_type تعیین میکند تصاویری که از این پس درج میشوند به کجا لینک شوند: مقدار post یعنی صفحهٔ پیوست، file یعنی فایل رسانه و مقدار خالی یعنی بدون لینک. با قراردادن مقدار روی post و کنارِ کد روش دوم، تصاویر جدید بهصورت خودکار به نوشتهٔ والد میرسند:
| روش | نیاز به کد | لینک به کجا | مناسبِ چه کسی |
|---|---|---|---|
| تنظیم Link To در ویرایشگر | خیر | صفحهٔ پیوست / فایل / بدون لینک | مبتدی، تصویر به تصویر |
| فیلتر attachment_link | بله | نوشتهٔ والد (خودکار برای همه) | کاربر حرفهای، کل سایت |
| گزینهٔ image_default_link_type | بله (کوتاه) | حالت پیشفرض تصاویر جدید | نیمهحرفهای |
| ریدایرکت 301 با template_redirect | بله | نوشتهٔ والد (بازدید مستقیم) | تمرکز روی سئو |
| مشکل رایج | علت احتمالی | راهحل |
|---|---|---|
| لینک تصویر عوض نشد | کش افزونه یا مرورگر یا CDN | همهٔ لایههای کش را پاک و در حالت ناشناس تست کنید |
| خطای 500 پس از افزودن کد | اشتباه نگارشی در functions.php | بکاپ را بازگردانید یا از افزونهٔ Code Snippets استفاده کنید |
| تصاویر قدیمی همچنان به پیوست میروند | تنظیم پیشفرض گذشته را عوض نمیکند | کد فیلتر را فعال کنید یا لینک تصویر را دستی ویرایش کنید |
| آدرس والد ناقص یا زشت است | ساختار پیوند یکتا پیشفرض است | از تنظیمات، پیوند یکتا را روی حالت مناسب بگذارید |
فایل رسانه (Media File) کاربر را مستقیم به خود فایل تصویر با آدرسی مثل uploads/image.jpg میبرد و چیزی جز عکس نشان نمیدهد. صفحهٔ پیوست (Attachment Page) یک صفحهٔ وردپرسی است که همان تصویر را همراه کمی متادیتا نمایش میدهد و آدرس اختصاصی دارد. برای رساندن کاربر به نوشتهٔ اصلی، صفحهٔ پیوست را انتخاب و با کد این مقاله آن را به والد هدایت میکنیم.
نه لزوماً. اگر فقط چند تصویر دارید، میتوانید در ویرایشگر بلوکی برای هر تصویر گزینهٔ Link To را روی صفحهٔ پیوست بگذارید. اما اگر میخواهید این کار برای کل سایت و همهٔ تصاویر بهصورت خودکار انجام شود، یک قطعه کد کوتاه با فیلتر attachment_link سادهترین و پایدارترین راه است.
بهترین جا، فایل functions.php قالب فرزند یا افزونهٔ Code Snippets است. قراردادن کد در قالب فرزند یا افزونه باعث میشود با بهروزرسانی قالب اصلی، کد شما پاک نشود. مستقیم در functions.php قالب اصلی کد نگذارید، چون با اولین آپدیت قالب از بین میرود.
لینکدهی تصویر یعنی تعیین اینکه «کلیک روی تصویر» به کجا برود. ریدایرکت 301 یعنی «بازدید مستقیم آدرس صفحهٔ پیوست» هم به نوشتهٔ والد هدایت شود. این دو مکمل هم هستند: اولی تجربهٔ کلیک را درست میکند و دومی برای پاکسازی سئو و بازدیدهای مستقیم مفید است.
Yoast در نسخههای جدید آدرس صفحهٔ پیوست را به «خود فایل رسانه» ریدایرکت میکند، نه به نوشتهٔ والد. بنابراین اگر هدف شما دقیقاً رساندن کاربر به نوشتهٔ اصلی است، Yoast گزینهٔ مناسبی نیست و بهتر است از روش کد این مقاله استفاده کنید.
خیر، برعکس. هدایت کاربر از صفحهٔ کممحتوای پیوست به نوشتهٔ اصلی، تجربهٔ کاربر را بهتر و ساختار لینک داخلی را منطقیتر میکند. اگر روش ریدایرکت را هم اضافه کنید، حتماً از کد وضعیت 301 (دائمی) استفاده کنید تا اعتبار صفحه به مقصد منتقل شود.
دو علت رایج دارد: یا آن تصویر به هیچ نوشتهای «پیوست» نشده (post_parent ندارد) که در این حالت کد عمداً لینک را دستنخورده میگذارد، یا لایهای از کش (افزونه، مرورگر یا CDN) نسخهٔ قبلی را نشان میدهد. کش را پاک کنید و در حالت ناشناس دوباره امتحان کنید.
فیلتر attachment_link و گزینهٔ image_default_link_type بخشی از هستهٔ وردپرساند و مستقل از قالب کار میکنند. با این حال نمایش نهایی صفحهٔ پیوست به فایل قالب attachment.php بستگی دارد؛ اگر از ریدایرکت استفاده کنید، دیگر وابسته به قالب هم نخواهید بود.