مكون Wp-discourse-shortcodes

لم أتمكن من العثور على أي استدعاءات لواجهة برمجة التطبيقات (API) في أي من سجلات Discourse. :woman_shrugging: ومع ذلك، الخبر السار هو أنني أعتقد أننا ربما قمنا بحل المشكلة.

كانت الشفرة المختصرة الأصلية تستخدم source="top" وبعض المعلمات الأخرى، لذا قمت بتجريد الشفرة المختصرة ببطء حتى كانت تستخدم فقط الإعدادات الافتراضية عن طريق الحذف. كنت أعتقد أن source="latest" فقط هو الذي يستخدم خطاف الويب (webhook) وفقًا للغة مربع الاختيار في إعدادات مسؤول ووردبريس، لكننا قمنا بتمكين خطاف ويب لأحدث الموضوعات (وقمنا أيضًا بتقييد المشغل ليشمل فقط الفئات التي أردنا عرضها) ثم عندما أعدت إضافة الفئة الأصلية، بدأت الشفرة المختصرة في احترام قيود الفئة! :tada: (لم تحترم قيود الفئة مع source="latest" أيضًا حتى قمت بتمكين خطاف الويب، على الرغم من مسح ذاكرة التخزين المؤقت لـ HTML من خلال صفحة مسؤول ووردبريس، ومصادر التخزين المؤقت الأخرى التي لدينا للموقع.)

بعد رؤية النتائج المرجوة باستخدام خطاف الويب + source="latest"، قمت بتغيير المصدر مرة أخرى إلى “top” ثم أعدت إضافة المعلمات الأصلية تدريجيًا. حتى الآن، حافظت على احترام قيود الفئة. تركت خطاف الويب ممكّنًا.

إذا كان خطاف الويب هو ما يساعد (حتى الآن، وليس مجرد شيء خدم كإعادة تعيين بشكل ما)، أقترح تغيير صياغة صفحة مسؤول ووردبريس من “استخدام خطاف ويب Discourse لتحديث قائمة الموضوعات ‘الأحدث’” إلى “استخدام خطاف ويب Discourse لتحديث قائمة [discourse_topics]” (أو شيء آخر لتوضيح أنه لا يهم المصدر الذي تستخدمه في قائمة الموضوعات، فمن المحتمل أن يكون خطاف الويب هو الحل السحري الذي نبحث عنه). :joy:

هذه إضافة رائعة. سؤالان حول الميزات:

  1. هل من الممكن عرض الصور داخل المنشورات، كما هو الحال مع البرنامج النصي المضمن باستخدام template="complete"؟

  2. هل من الممكن استبدال أسماء المستخدمين بالأسماء الحقيقية؟

شكراً جزيلاً لك.

وهناك أيضًا خطأ في الفئات المتداخلة التي لا يتم عرضها. تظهر فقط المواضيع ضمن فئة أساسية.
انظر المثال أدناه: عام ولكن لا يوجد عام >> أخبار وفعاليات

ومرة أخرى مع إزالة المربعات وجميع سمات الـ shortcode الأخرى..

مرحباً رايان، لا تعد معاينات صور الموضوعات أو أسماؤها من ميزات المكون الإضافي، ومع ذلك يمكنك استخدام هذه المرشحات لتطبيق التنسيق الخاص بك وربما إضافة هذه العناصر.

لتجاوز إخراج HTML بالكامل، استخدم هذين المرشحين (أي ما يعادل add_filter)

// إرجاع false لاستخدام التنسيق الخاص بك
apply_filters( 'wpds_use_plugin_topiclist_formatting', true );

// إرجاع إخراج HTML الخاص بك من بيانات discourse_topics
apply_filters( 'wpds_after_topiclist_formatting', $output, $discourse_topics, $args );

أو إضافة عناصر إضافية إلى HTML الحالي

apply_filters( 'wpds_topiclist_above_header', $output, $topic, $category, $poster_avatar_url, $args );
apply_filters( 'wpds_topiclist_above_footer', $output, $topic, $category, $poster_avatar_url, $args );
apply_filters( 'wpds_topiclist_avatar', $avatar_image, esc_url_raw( $poster_avatar_url ) );
apply_filters( 'wpds_topiclist_below_footer', $output, $topic, $category, $args );

عذرًا، هل تقصد أن الموضوع من فئة متداخلة يظهر، ولكن ليس شارة الفئة الخاصة به؟

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

شكراً جزيلاً يا أنجوس. هذا مفيد.

صحيح. إذا كان الموضوع يقع في فئة متداخلة، فلن تظهر الشارة. تُظهر لقطة الشاشة أدناه الشارة المفقودة. هذا موضوع داخل الفئة المتداخلة “عام >> الأخبار والأحداث”. إذا قمت بتغيير فئة الموضوع إلى الفئة الأصلية “عام”، فستظهر الشارة كما في الموضوع الثاني أدناه..

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

شكراً على التوضيح يا رايان، سألقي نظرة على هذه المشكلة الأسبوع المقبل وسأعود إليك.

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

شكرا لك. على أي حال، لقد أضفت سمة “اسم حقيقي” لاستبدال أسماء المستخدمين ونشرت تغييراتي داخل هذا المستودع.. أنا جديد جدًا على git لذا أعتذر إذا لم تتبع قنوات الالتزام الصحيحة، ولكن التغييرات موجودة إذا كانت مفيدة لأي شخص آخر..

إعجابَين (2)

القضية الكبيرة مع هذه الإضافة لا تزال عدم القدرة على تضمين/استبعاد حسب الفئة. في منتدى خاص قائم على العضوية، إما أن ترى جميع الفئات أو لا ترى أيًا منها، مما يعني أنه لا توجد طريقة لاستبعاد مواضيع الموظفين من الظهور لقاعدة الأعضاء الأوسع.

ومع ذلك، يبدو أن هناك حلاً بديلاً سهلاً يمكن أن يكون عن طريق التعليق على طلب ajax والاعتماد حصريًا على الـ webhook. لدينا مشغلات معدة لاستبعاد فئة الموظفين في الـ webhook..

وهذا يعمل لمنع مناقشات الموظفين الجديدة مؤقتًا حتى يتم إجراء استدعاء ajax في النهاية.

لذا ربما فقط قم بالتعليق على استدعاء ajax؟..

هل أغفل شيئًا يجعل هذا النهج غير مستحسن؟

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

إعادة النظر

:tada: يسعدني أن أعلن أن المكون الإضافي WP Discourse Shortcodes يدعم الآن (تجريبي) ميزة تصفية قائمة المواضيع. :confetti_ball:

بالإضافة إلى source="latest" أو source="top" يمكنك الآن القيام بـ source="filter" ووضع استعلام التصفية في المعلمة q، مثل هذا

[discourse_topics source="filter" q="category:general,site-feedback"]

لا تنس تمكين الإعداد experimental_topics_filter أولاً!

لقد قمت أيضًا بإصلاح بعض الأخطاء:

  • تمت إعادة بناء التخزين المؤقت بالكامل (هذا يزيل أيضًا الحاجة إلى سمة id)
  • لم تكن أسماء المستخدمين تظهر في المنتديات غير الإنجليزية
  • إضافة فلتر الفئة إلى latest-AJAX

لا يزال المكون الإضافي غير موجود في مستودع مكونات WordPress الإضافية، لذا يجب عليك استنساخه من المستودع

cd wp-content/plugins
git clone https://github.com/communiteq/wp-discourse-shortcodes

أو بدلاً من ذلك قم بتحميل ملف ZIP هذا للتثبيت.
wp-discourse-shortcodes-0.40.zip (67.6 KB)

5 إعجابات

هذا أمر رائع! شكراً على العمل الرائع، هذا يفتح مجموعة جديدة كاملة من الاحتمالات :heart:

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

أحاول المتابعة هنا، لكن لا يبدو أنني أستطيع معرفة ما إذا كانت هذه إمكانية حالية.

  • أريد عرض أحدث المشاركات عبر أي فئة وموضوع. —

المعلومات التي أرغب في عرضها هي:

  • اسم المستخدم / تاريخ النشر
  • عنوان المواضيع
  • عنوان الفئة
  • مقتطف (45 حرفًا)
  • الإعجابات (وربما الردود؟)

هل يعرف أي شخص ما إذا كان هذا ممكنًا؟

يستخدم المكون الإضافي ما يوفره Discourse، لذا يرجى متابعة هذا السؤال في موضوع منشورك الآخر هنا.

متأخر قليلاً عن الحفلة، ولكن شكراً لك!

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