<div data-theme-toc="true"> </div>
> :bookmark: يوفر هذا الدليل إرشادات حول كيفية حذف مجموعة كبيرة من جميع المواضيع داخل فئة في مثيل Discourse مستضاف ذاتيًا.
>
> :person_raising_hand: مستوى المستخدم المطلوب: مسؤول النظام
>
> :warning: مطلوب الوصول عبر SSH إلى الخادم الخاص بك
قد يكون إزالة جميع المواضيع من فئة ضروريًا لأسباب مختلفة، مثل إعادة تنظيم المحتوى أو مسح المناقشات القديمة. يرشدك هذا الدليل خلال الخطوات اللازمة لإنجاز هذه المهمة بأمان على خادم Discourse مستضاف ذاتيًا.
> :warning: هذا إجراء تدميري. تأكد من عمل نسخة احتياطية للمنتدى الخاص بك قبل المتابعة
## خطوات حذف المواضيع في فئة
1. **تحديد مُعرّف الفئة (slug)**: هذا هو الاسم المستخدم في عنوان URL الخاص بالفئة.
2. **الوصول إلى الخادم الخاص بك**: استخدم SSH لتسجيل الدخول إلى الخادم الخاص بك.
3. **الانتقال إلى دليل Discourse**:
cd /var/discourse
4. **الدخول إلى تطبيق Discourse**:
./launcher enter app
5. **تنفيذ أمر الحذف**: استبدل `\"mycategory\"` بمُعرّف الفئة الخاص بك.
rake destroy:topics["mycategory"]
:information_source: قد تستغرق هذه العملية وقتًا اعتمادًا على عدد المواضيع.
## حذف المواضيع في الفئات الفرعية
لحذف المواضيع في فئة فرعية، قم بتضمين مُعرّف الفئة الأصل في الأمر الخاص بك. على سبيل المثال:
rake destroy:topics["childcategory","parentcategory"]
## حذف جميع المواضيع في جميع الفئات
:warning: سيؤدي هذا الإجراء إلى مسح جميع المواضيع من كل فئة!
rake destroy:topics_all_categories
## أسئلة شائعة
### كم من الوقت يحتفظ Discourse بالمواضيع المحذوفة؟ لا يزال بإمكاني الوصول إلى المواضيع عبر رابط مباشر.
تبقى المواضيع في قاعدة البيانات بعد الحذف. سيظل الموظفون فقط هم من يتمكنون من رؤية المواضيع المحذوفة.
### كيف يمكنني حذف المواضيع بشكل دائم من قاعدة البيانات؟
يمكنك حذف المشاركات (ومواضيعها) بشكل دائم من قاعدة البيانات باستخدام مهمة `rake destroy:posts`. يتطلب هذا تمكين إعداد الموقع المخفي `can_permanently_delete` أولاً. مرر معرفات المشاركات كقائمة مفصولة بفواصل:
rake destroy:posts[4,8,15,16,23,42]
يمكنك أيضًا توجيه معرفات المشاركات من ملف:
cat post_ids.txt | rake destroy:posts
### هل من الممكن تقييد حذف المواضيع على فترة زمنية (بين تاريخين)؟
ستحتاج إلى القيام بذلك من وحدة تحكم Rails، ويجب أن يعمل أمر مشابه لما يلي:
Topic.where("created_at…").each do |t|
first_post = t.ordered_posts.first
PostDestroyer.new(Discourse.system_user, first_post).destroy if first_post
end
### كيف أجد مُعرّف (slug) أو مُعرّف الفئة الخاص بي؟
تستخدم مهمة `destroy:topics` **مُعرّف الفئة (slug)** (الاسم الموجود في عنوان URL الخاص بالفئة). يمكنك سرد جميع الفئات مع معرفاتها ومُعرّفاتها عن طريق تشغيل:
rake categories:list
## معلومات إضافية
لمزيد من المعلومات حول العمليات الإدارية الأخرى، يرجى الاطلاع على:
https://meta.discourse.org/t/administrative-bulk-operations/118349/1