آیا تاکنون خواستهاید پست وبلاگ سایت خود را از صفحه اصلی، بایگانی یا وبلاگ وردپرس مخفی کنید ؟
البته در خیلی از موارد میتوانیم از طریق رمزگزاری روی محتوا از نمایش آن برای همه کاربران محافظت کنیم، اما شاید خیلی این تکنیک مناسب سایتهای بزرگ نباشد. شما نیاز به راهی دارید که این محتوا را کلاً در سایت شما نمایش ندهد و فقط به کسانی که لینک مستقیم آنرا دارد نشان دهد.
امروز در وبجامه قصد داریم به شما آموزش مخفی کردن پست از صفحه اصلی، بایگانیها، نتایج جستجو و باقی صفحات را دهیم. این تکنیک به شما کمک میکند تا محتوای خود را فقط به کسانی که لینک مستقیم آنرا دارند نشان دهید.
قبل از مطالعه این مقاله میتونید فیلم آموزشی این پست رو هم مشاهده کنید.
روش 1 : مخفی کردن پست از صفحه اصلی با افزونه وردپرس
بهترین و سادهترین روش برای مخفی کردن محتوا از دید کاربران استفاده از افزونه وردپرس است. ما برای این کار به شما افزونه WordPress Hide Posts را پیشنهاد میدهیم. اگر با نحوه نصب افزونه وردپرس آشنا نیستید، حتماً قبل از ادامه مقاله آموزش نحوه نصب افزونه در وردپرس را مطالعه کنید.
بعد از فعال کردن به نوشتههای خود اگر مراجعه کنید، متوجه خواهید شد که منوی برای مخفی کردن محتوا اضافه شده.
به راحتی در این قسمت میتوانید انتخاب کنید که این پست در کجاها نمایش داده نشود، از بالا به پایین : برگهها، دستهبندیها، جستجو، برچسبها، صفحه نویسنده
بعد از ذخیره سازی پست خود، در قسمتهای مشخص کرده محتوا تولید شده که نمیخواهید کاربران در این صفحات ببینید مخفی میشود و بعد از این کاربران که فقط لینک مستقیم محتوا را دارند قادر به مشاهده آن خواهند بود.
با اینکه افزونه ساده و کارای است اما ایراداتی دارد : تنظیمی مربوط به عدم نمایش محتوا در فروشگاه ساز ووکامرس ندارد یا اینکه پست از فید سایت حذف شود.
روش 2 : مخفی کردن پستهای به صورت دستی
این روش پستهایی را که قصد دارید آنها را مخفی کنید را در وبسایت وردپرسی شما از دید کاربران مخفی میکند. ما در این روش قصد داریم قطعه کدی را در فایل function.php
پیاده کنیم، اگر تا به حال این کار را نکردهاید آموزش قرار دادن کد دلخواه در Function.Php وردپرس را مطالعه کنید.
در مرحله اول شما باید ID مخصوص پستهایی را که قصد دارید مخفی شوند را آماده کنید، برای اینکار به بخش ویرایش پست رفته و از آدرس بار مثل تصویر پایین ID پستهای مربوطه را ذخیره میکنید :
مخفی کردن پست در صفحه اصلی وردپرس
کد زیر را در Function.php قالب خود یا از طریق آموزش قرار دادن کد دلخواه در Function.Php وردپرس داخل قالب خود اضافه کنید.
function wbj_exclude_from_home($query) {
if ($query->is_home() ) {
$query->set('post__not_in', array(622, 628));
}
}
add_action('pre_get_posts', 'wbj_exclude_from_home');
توجه داشته باشید که ID پستهای که قصد دارید نمایش داده نشوند را در بالا اضافه کنید.
مخفی کردن پست در فید وردپرس
اگر قصد دارید پست را از فید سایت خود مخفی کنید کافیست کد زیر را استفاده کنید :
function wbj_exclude_from_feed($query) {
if ($query->is_feed() ) {
$query->set('post__not_in', array(622, 628));
}
}
add_action('pre_get_posts', 'wbj_exclude_from_feed');
حالا اگر به عنوان مدیر سایت فید را مشاهده کنید، پستهای مخفی شده را در فید خواهید دید، اما اگر کاربران عادی این پستها را در فید سایت مشاهده نخواهند کرد.
مخفی کردن پست و صفحات از صفحه جستجو وردپرس
اگر تمایل دارید کاربران این صفحات و پستها را در جستجو وردپرس نیز مشاهده نکنند میتوانید از کد زیر استفاده کنید :
function wbj_exclude_from_search($query) {
if ( $query->is_search() ) {
$query->set('post__not_in', array(622, 628));
}
}
add_action('pre_get_posts', 'wbj_exclude_from_search');
بعد از قرار دادن این کد، پستهایی را که مشخص کردهاید، در جستجو کاربران نمایش داده نخواهد شد.
مخفی کردن پست و صفحات از صفحه برچسبها ، دستهبندیها و تاریخ
اگر قصد دارید محتوای مشخص شده خود از صفحات آرشیو هم حذف کنید کافیست از کد زیر در Function.php خود استفاده کنید.
function wbj_exclude_from_archives($query) {
if ( $query->is_archive() ) {
$query->set('post__not_in', array(622, 628));
}
}
add_action('pre_get_posts', 'wbj_exclude_from_archives');
مخفی کردن پستها در همه صفحات وردپرس
تا اینجا یاد گرفتید که چطور محتوا خود را در قسمتهای مختلف وردپرس مخفی کنید، اما اگر قصد دارید پست خاصی را از مشاهده همه کاربران، در همه صفحات مخفی کنید بهتر است از کد زیر که ترکیبی از همه کدهای بالاست استفاده کنید.
function wbj_exclude_from_everywhere($query) {
if ( $query->is_home() || $query->is_feed() || $query->is_search() || $query->is_archive() ) {
$query->set('post__not_in', array(622, 628));
}
}
add_action('pre_get_posts', 'wbj_exclude_from_everywhere');
این کد صفحاتی که ID آنها را در آن قرار دادید را در همه صفحات، دستهبندیها، برچسبها، صفحه جستجو و فیدهای سایت مخفی میکند.
آیا روشهای بالا به طور کلی صفحات را مخفی میکند ؟
خیر به طور کلی مخفی نمیکند.
مثلاً اگر محتوای سایت شما قبل از مخفی کردن توسط رباتهای گوگل ایندکس شود، این محتوا نیز در ایندکس گوگل ذخیره خواهد شد. برای اینکار بهتر است محتوا مورد نظر را noindex
کنید.
همچنین اگر افزونه خاصی داشته باشید که دارای ویژگی جستجو باشد امکان دارد محتوا شما را نمایش دهد، برای جلوگیری از این موضوع بهتر است برای محتوا خود رمز عبور تعریف کنید، یا اینکه محتوای خصوصی تهیه کنید و دسترسی آنرا فقط به مدیران سایت خود دهید.
آیا از طریق این روش میتوانم محتوا سایت خود را برای کاربران مخصوص نمایش دهم ؟
خیر، این افزونه به طور کل برای تمامی کاربران محتوا را مخفی میکند و کاربرانی که لینک مستقیم محتوا را داشته باشند قابلیت مشاهده این پست را دارند، بهتر است برای اینکار از افزونههایی که مخصوص اینکار هستند استفاده کنید.
این افزونهها که عقلب غیررایگان هستند به شما حتی اجازه میدهند تا حق عضویت بابت نمایش این صفحات دریافت کنید.
امیدوارم که این مطلب برای شما مفید بوده باشد و بتوانید در تولید محتوا خود کنترل بیشتری روی نمایش محتوا خود به کاربران داشته باشید. اگر در روند استفاده از این روشها با مشکل برخوردید یا سوالی داشتید حتماً در بخش نظرات برای ما بنویسید.