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

به اشتراک بگذارید
آموزش وردپرس | بلاگ وبداده
نمایش محتوای یک برگه داخل نوشته وردپرس

| معیار | روش افزونه (Insert Pages) | روش کدنویسی (شورتکد دستی) |
|---|---|---|
| سطح مهارت لازم | مبتدی؛ بدون کد | متوسط تا حرفهای؛ نیاز به PHP |
| سرعت راهاندازی | بسیار سریع | کمی زمانبر |
| افزونهی اضافه | بله، یک افزونه | خیر |
| انعطاف و کنترل | خوب (با گزینههای آماده) | کامل (هرطور بخواهید) |
| ریسک خرابی سایت | کم | متوسط (خطای PHP) |
| مناسب چه کسی | اکثر کاربران | کاربران فنی و توسعهدهنده |

functions.php قالبِ فرزند اضافه کنید. این تابع محتوای برگه را با شناسه میگیرد و با فیلتر the_content، بلاکها و شورتکدهای داخلش را هم درست پردازش میکند:[show_page id="123"] را بنویسید و عدد را با شناسهی برگهی خودتان جایگزین کنید. اگر بخواهید نسخهی کاملتری داشته باشید که هم نامک (slug) را بپذیرد و هم جلوی حلقهی بینهایت را بگیرد، از این کد استفاده کنید:بهصورت مستقیم خیر. هستهی وردپرس شورتکد آمادهای برای درج کامل یک برگه در نوشته ندارد. برای این کار یا باید افزونهای مثل Insert Pages نصب کنید یا با چند خط کد در قالب فرزند یک شورتکد اختصاصی بسازید. البته قابلیت «الگوهای همگام» برای بازاستفاده از قطعهمحتوا بهصورت بومی وجود دارد.
Insert Pages نوشتهی Paul Ryan با بیش از ۴۰٬۰۰۰ نصب فعال و امتیاز ۴٫۸ از ۵، محبوبترین و بهروزترین گزینه است و تا وردپرس 7.0 آزمایش شده. هم بلاک گوتنبرگ دارد و هم شورتکد، و میتوانید حالت نمایش را (فقط محتوا، عنوان، یا هر دو) انتخاب کنید.
برای یافتن شناسه، برگه را برای ویرایش باز کنید و در نوار آدرس مرورگر عددی که مقابل post= آمده همان شناسه (ID) است. نامک (slug) هم بخش انگلیسیِ آدرس برگه است که در تنظیمات برگه در بخش «پیوند یکتا» دیده میشود.
با افزودن یک تابع کوتاه به functions.php قالب فرزند که با get_post محتوای برگه را میگیرد و با apply_filters روی the_content آن را پردازش میکند، سپس با add_shortcode یک شورتکد مثل show_page میسازید. کد کامل آن در همین مقاله آمده است.
شایعترین علت، «حلقهی بینهایت» است؛ یعنی برگهای را داخل خودش یا دو برگه را بهصورت متقابل در هم درج کردهاید و رندر تا اتمام حافظه ادامه مییابد. از نسخهی ضدحلقهی کد استفاده کنید و هرگز یک برگه را داخل خودش درج نکنید.
اگر بخشهای کاربردی و کوتاه (فرم، هشدار، معرفی خدمات) را درج کنید مشکلی نیست. اما تکثیر یک متن بلندِ اصلی در نوشتههای زیاد ممکن است سیگنال محتوای تکراری بدهد. برای متنهای اصلی و طولانی، بهجای درج مکرر از لینک داخلی استفاده کنید.
بله. مزیت اصلی همین است. چون هر بار محتوای زندهی برگه خوانده و نمایش داده میشود، با ویرایش برگهی اصلی، محتوا در تمام نوشتههایی که درجش کردهاید خودکار بهروز میشود.
Insert Pages یک برگه یا نوشتهی مستقل را (که خودش در سایت وجود دارد) درج میکند. الگوهای همگام یک قطعهبلاکِ ذخیرهشده را در چند جا بازاستفاده میکنند. اگر میخواهید یک برگهی واقعی را نشان دهید، Insert Pages یا شورتکد دستی مناسبتر است.