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

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

 

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

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

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

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

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

با اضافه کردن کد زیر به فایل 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

لینک پیش نمایش مطلب به این صورت میشود

این روش کاملاً بدون افزونه کار می‌کند و پست از نقشه سایت و موتور جستجو حذف می‌شود.

اگر از افزونه کش یا CDN استفاده می‌کنید، بعد از قرار دادن کد کش سایت را پاک کنید.

پیشنهاد مطالعه 👇

آموزش تغییر تعداد نمایش محصولات ووکامرس به عدد دلخواه با یک کد ساده

افزونه Cyclone Slider ایجاد اسلایدرهای حرفه‌ای و واکنش‌گرا در وردپرس

معرفی افزونه One Click Demo Import – سریع‌ترین روش ایمپورت دمو در وردپرس

 

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