استخدام سلاسل الاستعلام لتصفية عروض المواضيع

:bookmark: يشرح هذا الدليل كيفية استخدام سلاسل الاستعلام للحصول على عروض مواضيع مخصصة ومُرشَّحة في أي موقع Discourse. يمكن لجميع المستخدمين استخدام سلاسل الاستعلام لعرض قوائم محددة من المواضيع، وإنشاء روابط مخصصة لقوائم مواضيع فريدة، والبحث عن مواضيع تستوفي معايير محددة.

:person_raising_hand: مستوى المستخدم المطلوب: جميع المستخدمين

سلاسل الاستعلام هي نصوص يمكنك إرفاقها بنهاية معظم عناوين URL الخاصة بـ Discourse للحصول على عرض مخصص ومُرشَّح للمواضيع. يمكن أن تكون مفيدة لعرض قوائم محددة من المواضيع، وإنشاء روابط مخصصة لقوائم مواضيع فريدة، والبحث عن مواضيع تستوفي معايير محددة.

فهم سلاسل الاستعلام

تُضاف سلسلة الاستعلام إلى نهاية عنوان URL، بدءًا بعلامة استفهام (?)، تليها المعلمات وقيمها. على سبيل المثال:

https://meta.discourse.org/?status=open

في عنوان URL هذا، ?status=open هي سلسلة الاستعلام.

سيظل قائمة المواضيع التي تظهر عند استخدام سلاسل الاستعلام محدودة بالمواضيع التي يمكن الوصول إليها من خلال حساب المستخدم الخاص بك. لا حاجة لتفعيل أي إعدادات لاستخدام سلاسل الاستعلام.

معلمات سلسلة الاستعلام المتاحة

إليك معلمات سلسلة الاستعلام التي يمكنك استخدامها في جميع مواقع Discourse:

الحالة (Status)

استخدم ?status=_ لعرض المواضيع ذات حالة محددة:

  • open: مواضيع مفتوحة فقط
  • closed: مواضيع مغلقة فقط
  • archived: مواضيع مؤرشفة فقط
  • listed: مواضيع مدرجة (مرئية) فقط
  • unlisted: مواضيع غير مدرجة فقط
  • deleted: مواضيع محذوفة فقط
  • public: مواضيع في فئات عامة (غير مقيدة بالقراءة) فقط

البحث (Search)

استخدم ?search=_ لإنشاء صفحة كاملة لنتائج البحث. استبدل `_ بكلمات البحث الخاصة بك.

الحالة الشخصية (State)

استخدم ?state=_ لعرض المواضيع ذات حالة شخصية محددة:

  • muted: عرض المواضيع التي كتمت صوتها
  • normal: عرض المواضيع التي قمت بتعيينها إلى الحالة العادية
  • tracking: عرض المواضيع التي تتابعها
  • watching: عرض المواضيع التي تراقبها
  • watching_first_post: عرض المواضيع في الفئات أو ذات الوسوم التي تراقب أول منشور فيها

الترتيب التصاعدي (Ascending order)

استخدم ?ascending=true لعرض المواضيع حسب التاريخ بترتيب تصاعدي. الافتراضي هو الترتيب التنازلي.

الترتيب (Order)

استخدم ?order=_ لعرض المواضيع بترتيب تنازلي حسب معايير مختلفة:

  • likes: حسب عدد الإعجابات
  • op_likes: حسب الإعجابات على المنشور الأصلي
  • views: حسب عدد المشاهدات
  • posts: حسب عدد المنشورات (الردود)
  • activity: حسب تاريخ آخر نشاط (يشمل تاريخ bumped_at)
  • posters: حسب عدد المشاركين
  • category: حسب اسم الفئة (من Z إلى A)
  • created: حسب تاريخ إنشاء الموضوع (المواضيع الأحدث أولاً)

مرشحات عدد المنشورات

  • ?max_posts=_: يعيد المواضيع التي يكون عدد منشوراتها `_ أو أقل
  • ?min_posts=_: يعيد المواضيع التي يكون عدد منشوراتها `_ أو أكثر

مرشحات العمر

  • ?before=_: يعيد المواضيع التي تم إنشاؤها منذ أكثر من `_ يومًا
  • ?bumped_before=_: يعيد المواضيع التي تم رفعها آخر مرة منذ أكثر من `_ يومًا

معرفات المواضيع (Topic IDs)

استخدم ?topic_ids=_ لعرض قائمة مواضيع بمعرفات محددة. يقبل سلسلة مفصولة بفواصل من معرفات المواضيع.

الفئة (Category)

استخدم ?category=_ لعرض قائمة مواضيع لفئات محددة. يقبل سلسلة مفصولة بفواصل من أرقام معرفات الفئات.

استخدم ?no_subcategories=true لاستبعاد المواضيع من الفئات الفرعية عند التصفية حسب الفئة.

الوسوم (Tags)

استخدم ?tags=_ لتصفية المواضيع حسب الوسوم. على سبيل المثال، https://meta.discourse.org/?tags=how-to ستعرض جميع المواضيع ذات وسم how-to.

استخدم ?match_all_tags=true مع ?tags=_ لاشتراط أن تحتوي المواضيع على جميع الوسوم المحددة (بدلاً من أي منها).

استخدم ?no_tags=true لعرض المواضيع التي لا تحتوي على وسوم فقط.

استخدم ?exclude_tag=_ لاستبعاد المواضيع ذات وسم محدد.

فلتر الإعجاب (Liked filter)

استخدم ?f=liked لعرض المواضيع التي أعجب فيها المستخدم الحالي بمنشور فقط.

معلمات خاصة بالإضافات

تضيف بعض الإضافات معلمات سلسلة استعلام إضافية:

إضافة Solved

إذا كانت إضافة Solved مثبتة:

  • ?solved=yes: عرض المواضيع المحلولة
  • ?solved=no: عرض المواضيع غير المحلولة

إضافة Assign

إذا كانت إضافة Assign مثبتة:

  • ?assigned=username: عرض جميع المواضيع المعينة لمستخدم محدد
  • ?assigned=*: عرض جميع المواضيع المعينة لجميع المستخدمين
  • ?assigned=me: عرض جميع المواضيع المعينة للمستخدم الحالي
  • ?assigned=nobody: عرض جميع المواضيع غير المعينة

دمج سلاسل الاستعلام

يمكنك دمج سلاسل استعلام متعددة باستخدام رمز علامة & (&). عند استخدام سلاسل استعلام متعددة، فإن المعلمة الأولى فقط تحتاج إلى رمز ?. على سبيل المثال:

https://meta.discourse.org/?max_posts=1&status=closed

سيظهر عنوان URL هذا مواضيع مغلقة تحتوي على منشور واحد فقط.

استخدام صفحة البحث المتقدمة

يمكنك أيضًا استخدام صفحة البحث المتقدمة لبناء عناوين URL هذه باستخدام واجهة مستخدم رسومية، ثم نسخ عنوان URL الناتج. لاحظ أن بعض فلاتر البحث قد لا تعمل كمعلمات لسلسلة استعلام خارج سياق البحث.

موارد إضافية

18 إعجابًا

ألا يمكنك استخدام صفحة البحث المتقدم لإنشاء عناوين URL هذه باستخدام الواجهة الرسومية ثم مجرد نسخ عنوان URL؟

إعجاب واحد (1)

يبدو أنها نفس المعلمات (نحتاج فقط إلى استبدال “:” من عامل تصفية البحث بـ “=” في سلسلة الاستعلام)، ولكن بعض عوامل تصفية البحث لا تعمل عند استخدامها كمعلمات لسلسلة الاستعلام خارج البحث.

لذلك أعتقد أن القائمة الكاملة موجودة في هذه الوثائق. سأكون مهتمًا برؤية ملف Discourse الذي تمت الإشارة إليه للتأكد، على الرغم من ذلك.

تعديل: يوجد الآن مسار /filter مع معايير تصفية أكثر بكثير:

3 إعجابات

إذا كان لديك المكون الإضافي Solved، يمكنك أيضًا استخدام:

?solved=yes
?solved=no

3 إعجابات

أعتقد أن هناك بعضها لـ تعيين أيضًا:

سأضيفها. :+1:

3 إعجابات

تخمينًا، هل يمكن استخدام هذا أيضًا للعلامات؟

كيفية رائعة

إعجابَين (2)

نعم، يمكنك إلحاق ?tags=_ بعنوان URL الخاص بـ Discourse لاستخدام سلاسل الاستعلام لتصفية العلامات.

على سبيل المثال، https://meta.discourse.org/?tags=how-to سيوجهك إلى جميع علامات how-to على Meta.

إعجابَين (2)

هل من الممكن الحصول على فلتر سلبي (استثناء) باستخدام سلسلة الاستعلام؟ حاليًا، باستخدام البحث المتقدم، يتم ذلك عن طريق إضافة بادئة بـ -

-tags: smth ولكن هذا غير ممكن باستخدام سلسلة الاستعلام.

من الممكن بالتأكيد باستخدام المسار /filter الجديد.

على سبيل المثال https://meta.discourse.org/filter?q=-tags%3Aofficial%20%20category%3Aplugin

3 إعجابات

شكرًا! ماذا عن البحث بحالات متعددة (أو)؟ لقد جربت طرقًا مختلفة للبحث ولكن يبدو أنه لا يتم دعمه على الإطلاق. على سبيل المثال، لدي بعض المواضيع التي تكون مفتوحة أو مغلقة أو مؤرشفة، وأريد فقط استبعاد الأرشيف، أي البحث عن مفتوح أو مغلق. حتى الآن جربت

  • بحث متقدم: status:open,closed
  • بحث متقدم: status:open status:closed
  • سلسلة الاستعلام: ?status=open,closed

لم يعمل أي منها.