
به اشتراک بگذارید
آموزش وردپرس | بلاگ وبداده
نمایش محتوای یک برگه داخل نوشته وردپرس
- دو روش اصلی: افزونهی آماده (بدون کد و سریع) یا شورتکد دستی در قالب فرزند (سبک و بدون افزونه).
- روش افزونه: افزونهی Insert Pages با شورتکد یا بلاک، محتوای برگه را همانجا نشان میدهد.
- روش کد: با get_post و فیلتر the_content یک شورتکد اختصاصی مثل show_page میسازید.
- جایگزین بومی: «الگوهای همگام» (Synced Patterns) وردپرس برای استفادهی مجدد از یک قطعه محتوا.
- هشدار حلقه: هرگز برگهای را داخل خودش یا بهصورت متقابل درج نکنید تا حافظهی سرور تمام نشود.
در یک نگاه
نمایش محتوای برگه در نوشته یعنی چه و چرا به آن نیاز داریم؟
- یک منبع، همهجا بهروز: با ویرایش برگهی اصلی، محتوا در تمام نوشتهها خودکار عوض میشود.
- کاهش خطا و محتوای ناهماهنگ: دیگر نگران نیستید که یک نسخه بهروز باشد و بقیه قدیمی بمانند.
- مدیریت آسانتر: بخشهای تکراری (قوانین، تماس، بنر تخفیف) را یکجا نگه میدارید.
نکتهی مهم: مراقب محتوای تکراری باشید

مقایسهی دو روش: افزونه یا کدنویسی؟
| معیار | روش افزونه (Insert Pages) | روش کدنویسی (شورتکد دستی) |
|---|---|---|
| سطح مهارت لازم | مبتدی؛ بدون کد | متوسط تا حرفهای؛ نیاز به PHP |
| سرعت راهاندازی | بسیار سریع | کمی زمانبر |
| افزونهی اضافه | بله، یک افزونه | خیر |
| انعطاف و کنترل | خوب (با گزینههای آماده) | کامل (هرطور بخواهید) |
| ریسک خرابی سایت | کم | متوسط (خطای PHP) |
| مناسب چه کسی | اکثر کاربران | کاربران فنی و توسعهدهنده |
جمعبندی جدول
آموزش گامبهگام هر دو روش
روش اول: افزونه Insert Pages (سادهترین راه)
- نصب و فعالسازی: از «افزونهها ← افزودن» عبارت Insert Pages را جستوجو، نصب و فعال کنید.
- باز کردن نوشته: نوشتهای را که میخواهید محتوای برگه در آن نمایش داده شود، برای ویرایش باز کنید.
- افزودن بلاک یا شورتکد: بلاک «Insert Page» را اضافه کنید و برگهی مورد نظر را انتخاب کنید؛ یا مستقیم شورتکد بنویسید.
- انتخاب حالت نمایش: در گزینهی Display حالت content را انتخاب کنید تا فقط محتوای برگه (بدون عنوان) نمایش داده شود.
// حالا کافی است این شورتکد را داخل هر نوشته بنویسید:
[show_page id="123"]
// عدد 123 را با شناسهی برگهی خودتان جایگزین کنید.
// شناسهی برگه را در نوار آدرس هنگام ویرایش برگه، مقابل post= میبینید.Bashگزینههای حالت نمایش (Display)

روش دوم: شورتکد دستی در functions.php (بدون افزونه)
functions.php قالبِ فرزند اضافه کنید. این تابع محتوای برگه را با شناسه میگیرد و با فیلتر the_content، بلاکها و شورتکدهای داخلش را هم درست پردازش میکند:// شورتکد ساده برای نمایش محتوای یک برگه داخل نوشته
// این کد را در functions.php قالب فرزند قرار دهید
function webdade_show_page( $atts ) {
$atts = shortcode_atts( array(
'id' => 0, // شناسه (ID) برگهای که میخواهید نمایش دهید
), $atts );
$page = get_post( (int) $atts['id'] );
// اگر برگه پیدا نشد یا منتشر نشده، چیزی نمایش نده
if ( ! $page || $page->post_status !== 'publish' ) {
return '';
}
// پردازش بلاکها و شورتکدهای داخل برگه با فیلتر the_content
return apply_filters( 'the_content', $page->post_content );
}
add_shortcode( 'show_page', 'webdade_show_page' );PHP[show_page id="123"] را بنویسید و عدد را با شناسهی برگهی خودتان جایگزین کنید. اگر بخواهید نسخهی کاملتری داشته باشید که هم نامک (slug) را بپذیرد و هم جلوی حلقهی بینهایت را بگیرد، از این کد استفاده کنید:// نسخهی پیشرفته: پشتیبانی از نامک (slug) و جلوگیری از حلقهی بینهایت
function webdade_show_page_advanced( $atts ) {
$atts = shortcode_atts( array(
'id' => 0,
'slug' => '',
), $atts );
// یافتن برگه بر اساس شناسه یا نامک
if ( ! empty( $atts['slug'] ) ) {
$page = get_page_by_path( sanitize_title( $atts['slug'] ) );
} else {
$page = get_post( (int) $atts['id'] );
}
if ( ! $page || $page->post_status !== 'publish' ) {
return '';
}
// جلوگیری از درج یک برگه داخل خودش (حلقهی بینهایت)
if ( get_the_ID() === $page->ID ) {
return '';
}
$content = apply_filters( 'the_content', $page->post_content );
return '<div class="embedded-page embedded-page-' . esc_attr( $page->ID ) . '">' . $content . '</div>';
}
add_shortcode( 'show_page', 'webdade_show_page_advanced' );PHPحتماً از قالب فرزند (Child Theme) استفاده کنید
جایگزین بومی: الگوهای همگام (Synced Patterns)
معایب، عیبیابی و نکات مهم
قبل از ویرایش کد، بکاپ بگیرید
نقلقول از مرجع رسمی وردپرس
میزبانی وردپرس با وبداده
✅ دیتاسنترهای متنوع در ایران، هلند و آلمان برای انتخاب نزدیکترین لوکیشن به کاربران شما.
✅ کنترلپنل سیپنل بههمراه فایلمنیجر و ابزار بکاپ برای ویرایش امنِ فایل قالب و افزودن قطعهکد.
✅ پشتیبانی فنی ۲۴ ساعته برای کمک در نصب افزونه، ساخت قالب فرزند و رفع خطاهای وردپرس.
تجربهی پشتیبانی وبداده
پرسشهای پرتکرار دربارهی درج محتوای برگه در نوشته
آیا وردپرس بهصورت پیشفرض امکان درج یک برگه در نوشته را دارد؟
بهصورت مستقیم خیر. هستهی وردپرس شورتکد آمادهای برای درج کامل یک برگه در نوشته ندارد. برای این کار یا باید افزونهای مثل 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 یک برگه یا نوشتهی مستقل را (که خودش در سایت وجود دارد) درج میکند. الگوهای همگام یک قطعهبلاکِ ذخیرهشده را در چند جا بازاستفاده میکنند. اگر میخواهید یک برگهی واقعی را نشان دهید، Insert Pages یا شورتکد دستی مناسبتر است.
جمعبندی و چکلیست نهایی
چکلیست سریع
✅ در روش افزونه، Insert Pages را نصب و حالت نمایش content را انتخاب کنید.
✅ در روش کد، تابع را در functions.php قالب فرزند بگذارید و با شورتکد صدا بزنید.
✅ هرگز یک برگه را داخل خودش یا بهصورت متقابل درج نکنید.
✅ برای بخشهای کوتاه و کاربردی استفاده کنید تا محتوای تکراری نسازید.
✅ پیش از هر ویرایش کد، بکاپ کامل بگیرید.



