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

آموزش مخفی کردن نوشته های محافظت شده از حلقه خواندن نوشته ها

چرا ما باید مطالب محافظت شده را مخفی کنیم ؟

در سایت های وردپرسی ما میتوانیم مطالب رمز دار منتشر کنیم و البته این مطالب با پیشوند محافظت شده یا Protected به کاربران نمایش داده میشود و عملا تمامی کاربران امکان دیدن آن را ندارند . میتوانید نمونه مطلب رمز دار را در تصویر زیر مشاهده کنید .

آموزش مخفی کردن نوشته های محافظت شده از حلقه خواندن نوشته ها
آموزش مخفی کردن نوشته های محافظت شده از حلقه خواندن نوشته ها

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

function wpi_password_post_filter( $where = '' ) {
    if (!is_single() && !is_admin()) {
        $where .= " AND post_password = ''";
    }
    return $where;
}
add_filter( 'posts_where', 'wpi_password_post_filter' );

این کد مانند یک صافی عمل کرده و مطالب رمز دار را درون حلقه ای که تمام نوشته ها را دریافت میکند قرار نمیدهد . این کار باعث میشود تا مطالب سایت در صورتی نمایش داده شوند که رمز دار نباشند . البته لازم به ذکر است نوشته های رمز دار با لینک مستقیم قابل دسترسی هستند فقط از دید تمامی کاربران مخفی شده اند.

در صورتی که بخواهید مدیر یا ویرایشگر بتواند این گونه مطالب را در لیست نوشته های شما پیدا کند کافیست تا کد زیر را به جای کد بالا قرار دهید :

function wpi_password_post_filter( $where = '' ) {
   if (!is_single() && !current_user_can('edit_private_posts') && !is_admin()) {
        $where .= " AND post_password = ''";
    }
    return $where;
}
add_filter( 'posts_where', 'wpi_password_post_filter' );

با این کد مدیران و کسانی که امکان ویرایش نوشته را دارند میتوانند نام نوشته را در لیست نوشته های سایت مشاهده کنند. امیدواریم که از این آموزش استفاده و لذت کافی را برده باشید . مانند همیشه خوشحال می شویم که نظرات و سئوالات خود را با ما در میان بگذارید .