در وردپرس زمانی که یک نوشته را برای انتشار در آینده زمان‌ بندی می‌ کنید، این محتوا به صورت پیش‌ فرض فقط برای کاربران دارای دسترسی مدیریتی قابل مشاهده است و بازدیدکنندگان معمولی سایت نمی‌ توانند آن را با لینک مستقیم مشاهده کنند.

گاهی ممکن است بخواهید قبل از انتشار رسمی یک مقاله، محصول یا نوشته، لینک آن را در اختیار مشتری، نویسنده، تیم تولید محتوا یا افراد خاص قرار دهید؛ اما هم‌ زمان قصد داشته باشید این صفحه در نتایج گوگل نمایش داده نشود و در نقشه سایت نیز قرار نگیرد.

در این آموزش، نحوه نمایش پست‌ های آینده وردپرس با لینک مستقیم را بدون استفاده از هیچ افزونه‌ ای بررسی می‌کنیم. با استفاده از یک قطعه کد ساده می‌توانید امکان مشاهده پیش‌ نمایش نوشته‌ های زمان‌ بندی شده را فعال کرده و از ایندکس شدن آن‌ ها توسط موتورهای جستجو جلوگیری کنید.

 

محدودیت نمایش نوشته‌ های زمان‌ بندی شده در وردپرس

به صورت پیش‌ فرض، وردپرس نوشته‌ هایی که وضعیت آن‌ ها روی «زمان‌بندی شده» یا Future قرار دارد را تنها به کاربران وارد شده با سطح دسترسی مناسب نمایش می‌دهد.

این موضوع باعث می‌ شود:

کاربران عادی نتوانند نوشته‌ های آینده را با لینک مستقیم مشاهده کنند.
مطالب زمان‌ بندی شده در بخش‌ های عمومی سایت نمایش داده نشوند.
آدرس این صفحات در نقشه سایت وردپرس قرار نگیرد.
موتورهای جستجو نیز امکان دسترسی معمول به این محتوا را نداشته باشند.

برای مواقعی که نیاز دارید یک مطلب قبل از انتشار نهایی بررسی شود، می‌توانید قابلیت نمایش با لینک اختصاصی را به وردپرس اضافه کنید.

 

مشکل پست‌های زمان‌بندی شده در وردپرس

وردپرس به صورت پیش‌ فرض پست‌ هایی که در آینده منتشر می‌ شوند را برای کاربران وارد نشده نشان نمی‌ دهد. بنابراین:

کاربران عادی با لینک مستقیم پست آینده را نمی‌ بینند.

پست در صفحات سایت، دسته‌ بندی‌ ها و نقشه سایت نیز ظاهر نمی‌ شود.

برای اینکه افراد خاص بتوانند پست را ببینند، نیاز به راهکار ویژه داریم.

با اضافه کردن کد زیر به فایل functions.php قالب فرزند خود، می‌ توانید:

لینک پیش‌نمایش پست آینده را به کاربران بدهید.

پست در گوگل ایندکس نشود.

پست در نقشه سایت پیش‌فرض وردپرس نمایش داده نشود.

اگر می‌خواهید کاربران سایت بعد از انتشار نوشته‌ های جدید به صورت خودکار مطلع شوند، می‌توانید قابلیت ارسال ایمیل انتشار مطلب جدید به کاربران عضو وردپرس را پیاده‌ سازی کنید تا هر زمان محتوای تازه‌ ای منتشر شد، اعلان آن از طریق ایمیل برای اعضای سایت ارسال شود.

 

نمایش پست‌ های آینده وردپرس با لینک مستقیم

برای فعال کردن نمایش نوشته‌ های زمان‌ بندی شده، کافی است کد زیر را در فایل functions.php قالب فرزند سایت خود قرار دهید.

این روش بدون نیاز به نصب افزونه انجام می‌ شود و کنترل کاملی روی نوشته‌ های آینده در اختیار شما قرار می‌ دهد.

 

// اجازه دیدن پست‌های زمان‌بندی شده برای همه با لینک پیش‌نمایش
function show_future_post_preview_to_all($query) {
    if ( !is_admin() && $query->is_main_query() && isset($_GET['preview']) && $_GET['preview'] === 'true' ) {
        if ( isset($_GET['p']) ) {
            $query->set('post_status', array('publish', 'future'));
        }
    }
}
add_action('pre_get_posts', 'show_future_post_preview_to_all');

// noindex کردن پست‌های خاص
function add_noindex_to_specific_posts() {
    if ( is_single() ) {
        global $post;
        $noindex_ids = array(123, 124); // آیدی پست‌های موردنظر
        if ( in_array($post->ID, $noindex_ids) ) {
            echo '<meta name="robots" content="noindex, nofollow" />' . "\n";
        }
    }
}
add_action('wp_head', 'add_noindex_to_specific_posts');

// حذف پست‌های خاص از نقشه سایت پیش‌فرض وردپرس
function exclude_posts_from_sitemap($args) {
    $args['post__not_in'] = array(123, 124); // آیدی پست‌ها
    return $args;
}
add_filter('wp_sitemaps_posts_query_args', 'exclude_posts_from_sitemap');

در این کد باید آیدی پست‌ های مورد نظر و آیدی پست‌ ها را با آیدی واقعی پست‌ های زمان‌ بندی شده خود جایگزین کنید.

بعد از قرار دادن کد، می‌توانید لینک مشاهده نوشته آینده را با ساختار زیر ایجاد کنید:

https://yoursite.com/?p=123&preview=true

لینک پیش نمایش مطلب به این صورت میشود و عدد 123 را با شناسه نوشته موردنظر خود تغییر دهید.

با باز کردن این لینک، کاربران می‌ توانند محتوای زمان‌ بندی شده را مشاهده کنند؛ در حالی که صفحه مورد نظر در موتورهای جستجو ایندکس نمی‌ شود و در نقشه سایت نیز قرار نمی‌ گیرد.

 

نکات مهم بعد از افزودن کد

اگر از افزونه‌ های افزایش سرعت، سیستم کش یا سرویس CDN استفاده می‌کنید، پس از اضافه کردن کد حتماً کش سایت را پاک کنید تا تغییرات به درستی اعمال شوند.

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

اگر به دنبال بهبود نمایش اطلاعات نوشته‌ ها و ایجاد تجربه کاربری بهتر در سایت وردپرسی خود هستید، می‌توانید از روش نمایش هوشمند مدت زمان گذشته از انتشار مطلب در وردپرس استفاده کنید تا تاریخ انتشار محتوا به شکل خواناتر و جذاب‌ تر مانند «۲ روز پیش» یا «۳ ماه قبل» نمایش داده شود.

 

جمع‌ بندی

نمایش پست‌ های زمان‌ بندی شده وردپرس با لینک مستقیم، بدون نیاز به افزونه امکان‌ پذیر است. با اضافه کردن چند خط کد می‌ توانید نوشته‌ های آینده را برای افراد خاص قابل مشاهده کنید، در حالی که کنترل کاملی روی ایندکس گوگل و نمایش آن‌ ها در نقشه سایت داشته باشید.

این روش برای سایت‌ هایی که قبل از انتشار نهایی نیاز به بررسی محتوا، تایید مشتری یا هماهنگی تیم تولید محتوا دارند، یک راهکار ساده و کاربردی محسوب می‌شود