مخفی کردن یک نوشته از صفحه اصلی سایت در وردپرس
- آموزش • آموزش وردپرس • افزونه • افزونه وردپرس
- ۱۳ اسفند ۱۴۰۱
- 2,167 بازدید
گاهی اوقات ممکن است نیاز به مخفی کردن یک نوشته در صفحه اصلی سایت داشته باشید اما این قابلیت به طور پیشفرض در وردپرس وجود ندارد. در ادامه با ما همراه باشید تا نحوه انجام این کار را آموزش دهیم.
قبلا آموزش مخفی کردن نوشته های دسته خاص در صفحه اصلی وردپرس و آموزش مخفی کردن نوشتههای رمزگذاری شده از حلقه وردپرس را در سایت قرار دادهایم.
اما این بار نحوه مخفی کردن یک نوشته در صفحه اصلی سایت را بررسی خواهیم کرد.
در برخی مواقع میخواهید یک یا چند مطلب شما در صفحه اصلی یا آرشیوهای سایت نمایش داده نشده ولی از طریق لینک مستقیم در دسترس باشند.
دو روش مختلف برای انجام این کار معرفی میکنیم که برای کاربران تازه کار و حرفهای مناسب هستند.
آنچه در این پست میخوانید
روش اول: استفاده از افزونه WordPress Hide Posts
ابتدا افزونه WordPress Hide Posts را از مخزن وردپرس نصب و فعالسازی کنید (لینک در انتهای مطلب).
سپس به صفحه ویرایش مطلبی که قصد مخفی کردن آن را دارید مراجعه کنید.
میبینید که قسمتی تحت عنوان Hide Posts در پنل کناری اضافه شده است.
چهار گزینه در این بخش وجود دارند که به ترتیب برای مخفی کردن پست در صفحات زیر بکار میروند:
- صفحه اصلی
- دسته بندی ها
- نتایج جستجو
- صفحه برچسب ها
- صفحه نویسنده
به راحتی با انتخاب گزینههای مورد نظر و بروزرسانی نوشته میتوانید مطلب را مخفی کنید اما همچنان از طریق لینک مستقیم قابل دسترس خواهد بود.
با اینکه این روش بسیار آسان است، اما متاسفانه آپشنهای زیادی را ارائه نمیکند.
برای مثال، امکان استفاده از افزونه در برگهها، پست تایپهای اختصاصی و محصولات ووکامرس وجود ندارد.
همچنین نمیتوانید مطالب را از RSS وردپرس مخفی کنید.
روش دوم: مخفی کردن یک نوشته به صورت دستی
این روش نیازمند اضافه کردن چند قطعه کد به قالب وردپرس است.
اگر مبتدی هستید، توصیه میکنیم که پیش از شروع کار، یک نسخه پشتیبان از فایل functions.php قالب خود تهیه کنید.
ابتدا نیاز به پیدا کردن آیدی نوشتهها یا برگههای مورد نظر داریم.
آیدی هر پست در صفحه ویرایش آن و در قسمت آدرسبار مرورگر قابل مشاهده است. (مطابق تصویر زیر)
در تصویر بالا، ID نوشته ما 5 است.
حالا آماده استفاده از کدهای زیر هستیم.
نکته مهم:
در مثالهای زیر، پستهایی با آیدی 1737 و 1718 تعیین شدهاند؛ شما باید ID (های) مورد نظرتان را جایگزین کنید.
محدودیتی در تعداد پست وجود ندارد؛ هر آیدی را با استفاده از , جدا کنید و اگر میخواهید فقط یک ID قرار بگیرد، آن را به صورت (array(1718 بنویسید.
قطعه کدهای زیر را باید به فایل functions.php قالب خود اضافه کنید.
کد مخفی کردن مطالب و برگهها از صفحه اصلی
function vebeet_exclude_from_home($query) { if ($query->is_home() ) { $query->set('post__not_in', array(1737, 1718)); } } add_action('pre_get_posts', 'vebeet_exclude_from_home');
کد مخفی کردن مطالب و برگهها از فید RSS
function vebeet_exclude_from_feed($query) { if ($query->is_feed() ) { $query->set('post__not_in', array(1737, 1718)); } } add_action('pre_get_posts', 'vebeet_exclude_from_feed');
پس از قرار دادن این کد، اگر به عنوان مدیر وبسایت لاگین کرده باشید و RSS را مشاهده کنید، مطالب نمایان میشوند؛ اما سایر کاربران قادر به دیدن آنها نخواهند بود.
کد مخفی کردن مطالب و برگهها از نتایج جستجو
function vebeet_exclude_from_search($query) { if ( $query->is_search() ) { $query->set('post__not_in', array(1737, 1718)); } } add_action('pre_get_posts', 'vebeet_exclude_from_search');
کد مخفی کردن مطالب و برگهها از دسته بندی و صفحات آرشیو
function vebeet_exclude_from_archives($query) { if ( $query->is_archive() ) { $query->set('post__not_in', array(1737, 1718)); } } add_action('pre_get_posts', 'vebeet_exclude_from_archives');
کد مخفی کردن مطالب و برگهها از همه جا (صفحه اصلی، RSS، نتایج جستجو، دسته بندی و آرشیو)
function vebeet_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', 'vebeet_exclude_from_everywhere');
توجه داشته باشید که با استفاده از این روشها، مطالب شما از دید موتورهای جستجو خارج نمیشوند و همچنان ایندکس خواهند شد.
امیدواریم که از آموزش مخفی کردن یک نوشته در وردپرس لذت برده باشید.