آیا می خواهید یک پست از وبلاگ را از صفحه اصلی وردپرس یا صفحه بایگانی وبلاگ خود مخفی کنید؟ می توانید پست های وردپرس را با رمز عبور محافظت یا خصوصی کنید، در برخی مواد نیز ممکن است بخواهید پست را از صفحه اصلی خود پنهان کنید و در عین حال به دیگران اجازه دهید در صورت داشتن لینک مستقیم آن را مشاهده کنند. در این مقاله قصد داریم به شما بگوییم که چگونه پست ها را از صفحات وردپرس مانند صفحه اصلی
در این مقاله نحوه مخفی کردن پست ها را از صفحات انتخاب شده در وردپرس مانند صفحه اصلی، بایگانی دسته بندی، نتایج جستجو و موارد دیگر مخفی کنید.
این روش ساده تر است و توصیه می شود مبتدیان از آن استفاده کنند.
اولین کاری که باید انجام دهید این است که افزونه Hide Posts وردپرس را نصب و فعال کنید.
پس از فعال شدن افزونه، پستی را که می خواهید مخفی کنید ویرایش کنید. در ستون سمت راست ویرایشگر متوجه یک بخش جدید “Hide Posts” خواهید شد.
وقتی روی آن کلیک کنید، می توانید گزینه های آن را مشاهده کنید. می توانید پست را در صفحه اول، صفحه وبلاگ، صفحات دسته بندی یا برچسب، صفحه نویسندگان و نتایج جستجوی سایت پنهان کنید.
به سادگی گزینه هایی را که دوست دارید انتخاب کنید و سپس پست خود را ذخیره کنید.
بسته به گزینه هایی که انتخاب کرده اید، اکنون می توانید از آن صفحات بازدید کنید و آن پست خاص نشان داده نخواهد شد.
همه کاربرانی که آدرس پست مستقیم (لینک دائمی) را دارند، همچنان می توانند با وارد کردن URL آن را ببینند.
در حالی که این یک روش ساده است، اما فاقد چندین گزینه است.
به عنوان مثال، شما نمی توانید یک صفحه یا یک نوع پست سفارشی مانند محصولات WooCommerce را پنهان کنید. همچنین گزینه ای برای مخفی کردن یک پست از فید RSS وردپرس ندارد.
در این روش شما باید کدی را به سایت وردپرس خود اضافه کنید.
شما می توانید کد سفارشی را با استفاده از افزونه code snippets اضافه کنید که ایمن تر بوده و سایت شما را خراب نمی کند. از طرف دیگر می توانید کد سفارشی را به فایل functions.php تم خود یا یک افزونه خاص سایت اضافه کنید.
همچنین به ID یا شناسه پست یا صفحاتی که می خواهید پنهان کنید نیاز دارید. برای این کار به بخش ویرایش پست بروید تا بتوانید شناسه آن را در نوار آدرس مرورگر خود مشاهده کنید.
در کد زیر از تگ شرطی ()is_home استفاده شده است تا مشخص شود کاربر در حال مشاهده صفحه اصلی است یا خیر.
برای انجام این کار باید از کد زیر استفاده کنید:
function wpb_exclude_from_home($query) {
if ($query->is_home() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_home');
فراموش نکنید که شناسه های داخل آرایه را با شناسه های واقعی پست ها یا صفحاتی که می خواهید حذف کنید، جایگزین کنید.
اگر می خواهید یک پست وردپرس را از صفحه اصلی و همچنین فید RSS وردپرس مخفی کنید، می توانید به سادگی از تگ شرطی is_feed در کد استفاده کنید.
function wpb_exclude_from_feed($query) {
if ($query->is_feed() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_feed');
اکنون اگر به عنوان مدیر وارد شده اید و سعی کرده اید از فید RSS وردپرس خود بازدید کنید، همچنان پست های لیست شده را در آنجا خواهید دید. سایر کاربران هنگام مشاهده فید RSS شما نمی توانند پست های حذف شده را ببینند.
بیشتر بخوانید: روش محدود کردن تعداد پست ها در فید RSS وردپرس
حال، اگر بخواهید پست های خاصی را از جستجوی سایت وردپرس مخفی کنید، چه کاری باید انجام دهید؟ برای انجام این کار، به سادگی باید تگ شرطی is_search را به کد اضافه کنید.
function wpb_exclude_from_search($query) {
if ( $query->is_search() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_search');
اکنون می توانید وب سایت تان را مشاهده کنید و پست هایی را که می خواستید پنهان کنید را جستجو کنید. با اینکه این پست ها عمومی هستند اما در نتایج جستجو ظاهر نمی شوند.
در مورد پنهان کردن پست ها یا صفحات خاص وردپرس از صفحات بایگانی مانند دسته بندی، برچسب ها و بایگانی تاریخ چطور؟ برای این کار از تگ شرطی ()is_archive استفاده می کنیم.
function wpb_exclude_from_archives($query) {
if ( $query->is_archive() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_archives');
تا این قسمت از مقاله یاد گرفتیم که چطور یک پست یا صفحه وردپرس را از مناطق خاص مخفی کنیم. حالا، در مورد پنهان کردن کامل یک پست وردپرس از همه این بخش ها به طور همزمان چطور می توانیم این کار را انجام دهیم؟
برای انجام این کار، می توانید تمام تگ های شرطی را که قبلاً استفاده کرده ایم در یک قطعه کد واحد ترکیب کنید.
function wpb_exclude_from_everywhere($query) {
if ( $query->is_home() || $query->is_feed() || $query->is_search() || $query->is_archive() ) {
$query->set('post__not_in', array(1737, 1718));
}
}
add_action('pre_get_posts', 'wpb_exclude_from_everywhere');
این کد پست ها را از صفحه اصلی، فید RSS، نتایج جستجو و صفحات بایگانی پنهان می کند.
منبع: wpbeginner