سؤال سريع حول الارتباط البرمجي بموضوع موجود

أنا أستخدم نماذج الواجهة الأمامية لإنشاء منشورات في WordPress تحتاج إلى ربطها بمواضيع Discourse الموجودة.

خطتي هي إدخال عنوان URL للموضوع الموجود في حقل ACF عند إضافة أو تعديل منشور في WordPress.

بعد ذلك سأستخدم

add_action('acf/save_post', 'my_acf_save_post', 25);

داخل دالة my_acf_save_post، سأقوم بتنفيذ

protected function link_to_discourse_topic( $post_id, $topic_url )

كما هو موضح هنا

هل أنا على المسار الصحيح؟

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

نعم، أنت على المسار الصحيح. بشكل عام، ما تحتاج إلى فعله هو:

  1. استرجاع تفاصيل الموضوع من discourse (ما لم تكن متوفرة لديك بالفعل)
  2. حفظ التفاصيل ذات الصلة في حقول بيانات المنشور المناسبة

إنها حقول بيانات المنشور هذه التي تراها في الدالة التي ربطتها هي التي تنشئ الاتصال.

لقد أضفت هذا أيضًا إلى جدول أعمال تطوير WP Discourse: لتسهيل القيام بذلك، أي باستخدام دالة مساعدة عامة واحدة لتحقيق هذا الهدف. وقد حددت هذا في يونيو.

كما ألقِ نظرة على دوال المساعدة الموجودة في lib/plugin_utilities.php و lib/utilities.php. وعلى دالة link_topic المقابلة في admin/discourse-sidebar/discourse-sidebar.php.

أخبرني كيف تسير الأمور.

إعجابَين (2)

@Angus، شكرًا لك على ردك. أنا في مرحلة المبتدئين في PHP، لذا إذا كنت تخطط للعمل على هذا الأمر، فسأنتظر.

أيضًا، أواجه خطأً متكررًا مع إضافة ووردبريس. لا أعرف ما إذا كنت تفضل منشورًا منفصلًا أو مشكلة على GitHub، لكن إليك ما يحدث:

عند فتح منشور ووردبريس مرتبط بموضوع في المنتدى، لا يظهر الرابط في كتلة Discourse. يبدو وكأنه لا يوجد رابط.

الشروط:
يحدث هذا سواء تم إنشاء الرابط عن طريق نشر “موضوع جديد” أو عن طريق “الربط بموضوع موجود”.

منشورات ووردبريس الخاصة بي هي أنواع محتوى مخصصة (CPTs).

تم ضبط إعداد التعليقات على “عرض رابط التعليقات”.

بصرف النظر عن ذلك، لا يوجد شيء خاص في تثبيتاتي.

التأكيد:
يمكنني تأكيد أن الروابط التي لا تظهر في كتلة Discourse موجودة بالفعل، وذلك من خلال رؤيتها في أعمدة لوحة الإدارة، ولأنه يمكنني النقر على الرابط في الواجهة الأمامية والانتقال إلى منشور المنتدى.

سأكون سعيدًا بالمساعدة في توفير المزيد من المعلومات أو إجراء الاختبارات.

تحياتي، ريتشارد

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

هل قمت بإضافة نوع المنشور المخصص الخاص بك في إعداد النشر “أنواع المنشورات للنشر”؟ راجع المزيد

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

نعم. كان ينبغي أن أذكر أن كل شيء يعمل في البداية: يمكنني النشر في موضوع جديد، أو الربط بموضوع موجود، وتعمل الروابط في كلا الاتجاهين… باستثناء

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

إذن المشكلة موجودة فقط في كتلة ووردبريس-ديسكورش أثناء إعادة تحرير المنشور.

أخبرني إذا كنت بحاجة إلى أي شيء آخر.

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

شكرًا لك، لديّ بعض الأسئلة الإضافية

  1. هل ترى أي أخطاء في وحدة تحكم مستكشف الويب في متصفحك؟

  2. إذا قمت بتحديث الصفحة بالكامل أثناء عرض المحرر، فماذا يحدث؟

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

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

وحدة التحكم: لا يمكن العثور على العقدة في الصفحة الحالية

في البداية، تظهر أقسام “خيارات النشر” و “تثبيت الموضوع” و “النشر إلى Discourse” في كتلة Discourse. ثم يظهر قسم الفئة. لا يتم عرض الروابط الموجودة.

أوقفت كل الإضافات ما عدا WP-Discourse و CPT و ACF، ثم جربت الأمر باستخدام متصفح Brave ومتصفح Edge، وكلاهما بدون امتدادات وبدون تفعيل الدروع. لا يزال لا يمكنني رؤية الروابط الموجودة في كتلة Discourse.

أقوم بإجراء اختبار بين المنشورات العادية ومنشورات CPT. سأخبرك بالنتائج.

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

لست متأكدًا من السبب، لكن روابطي تظهر الآن في كتلة Discourse. سأعود بالإبلاغ إذا عثرت على نمط لهذه المشكلة. شكرًا لك.

إعجابَين (2)