مشكلة تصحيح الأخطاء مع نشر نوع منشور مخصص فارغًا

أنا أضيف قسم IF آخر لنوع منشور مخصص آخر إلى WP Discourse: advanced custom filter for discourse_publish_format_html - #12 by Kayla … هذا هو نوع المنشور نفسه الذي أردت تقييده بموضوع محدد في Discourse ونشره تلقائيًا وفقًا لموضوعي الأخير Filtering the available categories for a custom post type. يتم نشر المنشورات تلقائيًا إلى الموضوع الصحيح، لكن الحقول المخصصة التي أحاول تضمينها في discourse_publish_format_html تظهر فارغة. لقد تحققت أربع مرات من جميع أسماء الحقول ولا يزال كل شيء ما عدا قيم الحقول نفسها يبدو وكأنه يصل إلى Discourse.

أتساءل عما إذا كانت أي من هذه العوامل قد تكون السبب؟

  1. تم إنشاء نوع المنشور المخصص في WordPress عبر إضافة Gravity Forms Advanced Post Creation Add-On
  2. تم تطبيق Toolset Access على نوع المنشور المخصص بحيث يمكن للمحررين فقط رؤية هذه المنشورات المحددة؛ حالة WordPress هي “منشور”
  3. يتم نشر نوع المنشور المخصص إلى فئة خاصة في Discourse

الأجزاء التي تصل إلى Discourse هي عنوان المنشور/الموضوع، {author} و {blogurl}. ربما يكون المفتاح هو أن {excerpt} يعود أيضًا فارغًا إلى جانب الحقول المخصصة؟

تحديث: لم يُحل تعطيل الوصول إلى Toolset بالكامل و/أو إنشاء منشور عبر WordPress بدلاً من نموذج Gravity المشكلة المتعلقة بحقول التخصيص الفارغة. من ناحية أخرى، بدأ {excerpt} في الظهور…

للتوضيح، لا يبدو أن Toolset Access له أي تأثير على هذا الاختلاف مع {excerpt}.

إذا قمت بإنشاء منشور عبر لوحة تحكم ووردبريس، يظهر {excerpt} (يستخدم المنشور محرر الكتل). أما إذا تم إنشاء المنشور عبر نموذج Gravity (الذي ينشئ كتلة “كلاسيكية” لحقل WYSIWYG)، فيتم نشر {excerpt} فارغًا.

لا تزال الحقول المخصصة (سطر واحد، سطور متعددة، وأرقام) تُرجع قيمة فارغة بغض النظر عن طريقة إنشاء المنشور.

بعد نشر المنشور، هل تظهر لك إشعارًا مشابهًا لهذا في الشريط الجانبي لـ Discourse في المحرر؟

إذا لم يتم عرض رسالة “النجاح”، رغم أن المنشور قد نُشر، فإن المشكلة تكمن في إعداد نوع المنشور المخصص.

أما إذا تم عرض رسالة “النجاح”، فيجب أن تكون الحقول المخصصة متاحة كبيانات وصفية للمنشور يمكن استرجاعها باستخدام get_post_meta( $post_id, 'your_meta_key_name', true );. وأسهل طريقة لمعرفة ما يحدث هي كتابة سجل في ملف debug.log من داخل دالة cosmos_custom_publish_format_html الخاصة بك.

أنا بعيد عن العمل هذا الأسبوع، لذا قد يكون ردي على الأسئلة أبطأ من المعتاد.

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