هناك حالة يمكن فيها أن تتعطل الصور المنشورة إلى Discourse عبر إضافتي WP Discourse و RSS. قد يحدث هذا عند نشر محتوى المنشور بالكامل إلى Discourse باستخدام إضافة WP Discourse مع محرر WordPress الكلاسيكي. كما يمكن أن يحدث مع المنشورات التي تُسحب إلى Discourse عبر استطلاع RSS عندما لا تكون إعدادة "تقصير المنشورات المضمنة" مفعلة.
تتمثل المشكلة في أن Discourse يحاول تنزيل الصور المضافة إلى المنشور. إذا أدى تنزيل الصورة البعيدة إلى ظهور وسم صورة بصيغة Markdown مغلف بوسوم HTML، فإن الصورة ستتعرض للتعطيل.
إذا كانت المنشورات تُنشر من WordPress، فيجب حل المشكلة بالتبديل من استخدام المحرر الكلاسيكي إلى استخدام محرر الكتل (Block Editor) عند نشر المنشورات. وإذا لم يكن ذلك ممكنًا، أو إذا لم يحل المشكلة، فإن حلًا بديلًا هو منع Discourse من تنزيل الصور البعيدة.
إذا كنت تعرف النطاقات التي تُنشر منها الصور البعيدة، فيمكنك منع Discourse من تنزيل هذه الصور بإضافة النطاق (أو النطاقات) إلى إعداد الموقع "النطاقات المعطلة لتنزيل الصور" (disabled image download domains):
إذا لم تكن متأكدًا من جميع النطاقات المستخدمة، فيمكنك منع Discourse من تنزيل جميع الصور البعيدة بتعطيل إعداد "تنزيل الصور البعيدة إلى المحلي" (download remote images to local). لاحظ أن تعطيل هذا الإعداد قد يؤدي إلى ظهور صور معطلة في موقعك. إذا أمكن، فمن الأفضل منع تنزيل الصور البعيدة فقط من نطاقات محددة تتحكم فيها.
هل يمكنني طلب المزيد من التفاصيل حول هذا؟ جميع مواقعاتي تستخدم محرر Classic Editor، لكن عددًا قليلًا جدًا يستخدم إضافة لعرض Markdown كمدخل (لقد جف سوق الإضافات في محلّلات Markdown، لذا يلجأ الناس إلى Jetpack في معظم الأحيان).
هل الحالة هي عندما يُستخدم محلل Markdown فوق محرر Classic Editor؟
ولكن منع Discourse من تنزيل الصورة البعيدة عبر إعداد الموقع “disabled image download domains” هو أسهل طريقة لإصلاح المشكلة.
بالنسبة للمنشورات المنشورة من WP Discourse باستخدام محرر الكتل (Block Editor)، يحاول الإصلاح معالجة المنشور بالكود التالي قبل نشره إلى Discourse:
قد يكون من الممكن تنفيذ إصلاح مماثل لمحرر الكلاسيكي (Classic Editor)، لكن مع محرر الكلاسيكي ليست متاحة دالة WordPress parse_blocks، لذا سيكون الإصلاح أكثر تعقيدًا. أتمنى أن يمكن التعامل مع هذه المشكلة في النهاية من خلال تغييرات في كود Discourse الأساسي.
لقد واجهتُ هذه المشكلة أيضًا مع الصور. كنتُ أستخدم هذه الطريقة لتنزيل الصور محليًا، مما أدى إلى إتلاف الصور كما شرحتَ أعلاه. بعد ذلك، قمتُ بتحويل HTML الخاص بـ WordPress إلى Markdown ثم لصق المحتوى المحوَّل في Discourse. إنها تعمل بشكل جيد، لكنها تتطلب تدخلًا يدويًا.
هل من الممكن دمج المحوِّل لجعل العملية تلقائية عند التصدير من WordPress؟
إذا كنت تستخدم محرر الكتل في ووردبريس لنشر المشاركات، فستحدث عملية التحويل تلقائيًا. أما إذا كنت تستخدم المحرر الكلاسيكي، فستحتاج إلى إصلاح كود HTML يدويًا في ديسكورش لمنع ظهور الصور التالفة.
أخبرني إذا كنت تستخدم محرر الكتل ولا تزال تواجه مشاكل مع الصور التالفة.
قد يكون من الممكن إضافة وظيفة مماثلة للمشاركات المنشورة باستخدام المحرر الكلاسيكي، لكن الكود المطلوب لتنفيذ ذلك سيكون أكثر تعقيدًا من الكود المستخدم مع محرر الكتل.
أنا أستخدم محرر الكتل (Gutenberg)، ولكن هناك بعض الإضافات التابعة لجهات خارجية مثبتة فيه. ربما يكون ذلك هو السبب في مشكلة الصور التالفة. كما أنني أستخدم بعض إضافات المعرض التابعة لجهات خارجية على ووردبريس.
قد يكون مكون معرض الصور هو سبب المشكلة. ما يفعله مكون WP Discourse هو أنه قبل تعيين محتوى المنشور الذي سيتم نشره إلى Discourse، يبحث عن أي blocks في المنشور يكون فيها blockName مضبوطًا على core/image أو core/gallery. يتم إعادة كتابة HTML للصور في تلك الكتل إلى صيغة يمكن لـ Discourse تحليلها.
يبدو من الممكن أن مكونات الصور المستخدمة في موقعك قد تستخدم أسماء كتل لا يتم التعامل معها. ما هو اسم مكون معرض الصور الذي تستخدمه؟
أرى… أنا أستخدم هذا، لكنني أدركت للتو أنه لم يعد مدعومًا. لذا أعتقد أنني سأقوم بتحويل الصور مرة أخرى إلى المعرض الافتراضي وحاول تحديث مواضيع Discourse. يجب أن تكون هذه هي المشكلة، آسف على ذلك.
لقد انتقلت إلى محرر الكتل (يجب القيام بذلك في مرحلة ما نظرًا لأن دعم المحرر الكلاسيكي سينتهي العام المقبل)، لكن هذا لم يحل المشكلة. كانت الصور مستضافة على فيسبوك.
هل يمكنك التحقق من ترميز الصورة في منشور ووردبريس عن طريق تحديد “محرر الكود” من الشريط الجانبي؟ ما أود معرفته هو نوع الكتلة (إن وجدت) التي توجد فيها الصور:
كانت مشاركة WP نسخة ولصق من فيسبوك، وإليك عينة من كود HTML:
كانت الصور رموز تعبيرية:
<div dir="auto"><span class="pq6dq46d tbxw36s4 knj5qynh kvgmc6g5 ditlmg2l oygrvhab nvdbi5me sf5mxxl7 gl3lb2sf hhz5lgdu"><img src="https://static.xx.fbcdn.net/images/emoji.php/v9/t34/1/16/1f914.png" alt="🤔" width="16" height="16"></span>Comment ? Vous avez 1 mois pour nous envoyer vos plus beaux poèmes et/ou dessins sur le thème du monocycle, ce qu'il vous évoque, votre passion pour ce sport, etc.</div>
لا أرى نفس الشريط الجانبي الذي تراه في محرر الكتل، لذا قمت بعرض محتوى كتلة HTML باستخدام هذا الخيار:
إذا كانت المشكلة تحدث لأن المحتوى ليس “عاديًا” في ووردبريس بل هو نسخة ولصق من HTML، فهذا ليس مشكلة. سأخبر مستخدمين بتجنب نسخ ولصق الصور، حتى الرموز التعبيرية.
نعم، أعتقد أن المشكلة هنا هي أن تم نسخ HTML إلى منشور ووردبريس. يجب أن يكون بإمكان إضافة WP Discourse التعامل مع الصور المضافة عبر كتلة الصور. لكنها ليست مُعدة لإصلاح HTML للصور المضافة بأي طريقة أخرى.
من الناحية المثالية، سيكون بإمكان DIscourse التعامل مع وسوم الصور في HTML المحاطة بوسوم HTML أخرى، لكن هذه مشكلة معقدة. ربما يمكن تحديث إضافة WP Discourse للتعامل مع الصور المضافة خارج كتل الصور. كان أمني أن معالجة كتل الصور ستغطي معظم الحالات، لكن يبدو أن هناك العديد من الاستثناءات لذلك.
لقد قرأت هذا الموضوع والموضوع الرئيسي الآخر المتعلق بالصور.
نشر مقتطف من موقعي إلى Discourse يعمل بشكل مثالي. ومع ذلك، عند النقر على زر “عرض المنشور الكامل”، يبدو أن النظام يدخل في حلقة تحميل ولا يتم تحميل المنشور الكامل أبدًا (أو لا يقوم بأي إجراء آخر على الإطلاق).
إذا حاولت نشر المنشور الكامل إلى Discourse، فإن ذلك يعمل أيضًا مع بعض المشاكل:
الصور لا يتم تحميلها (وهو ما قادني إلى هذه المواضيع)؛
يتم تحميل المنشور الكامل (لدي عدة أزرار/روابط داخل محتوى كل منشور قد تربك الإضافة)، لكنه أيضًا يحمل مقتطفًا منسّقًا تمامًا في نهاية المنشور الكامل لسبب ما. بعبارة أخرى، يتم تحميل المنشور الكامل (باستثناء الصور)، ثم يتم تحميل مقتطف آخر لنفس المنشور في أسفل المنشور.
شيء واحد يجب ملاحظته: موقعي على ووردبريس يعمل في وضع الاختبار (Staging) ولا يستخدم بروتوكول HTTPS. أما موقع Discourse الخاص بي فيستخدم HTTPS. اعتقدت أن تحميل المنشور الكامل قد يكون المشكلة بسبب موقع الاختبار، لكن أشياء أخرى تبدو تعمل بشكل صحيح (مثل تحديث الفئات قسرًا).
أدرك أن هذه قضية معقدة. فكون الإضافة تقوم بتنسيق منشورات أشخاص آخرين بينما نقوم جميعًا بأشياء مختلفة سيكون تحديًا هائلًا، وأعتقد أن فريق Discourse قد قام بعمل رائع. أنا فقط أحاول إيجاد حل بديل بسيط قدر الإمكان. ربما مجرد عرض رابط المنشور (Oneboxing)؟ على الأقل سيكون المنشور (أو رابط إليه) موجودًا على موقع Discourse، لكن لن يكون هناك تنسيق متبادل.
قد تكون المشكلة هي أن Discourse غير قادر على العثور على أي محتوى في صفحة WordPress. لا أتوقع أن يتسبب ذلك في حلقة تكرار، فـ Discourse يجب أن يفشل بصمت إذا لم يتمكن من العثور على أي محتوى في الصفحة. فقط في حال كنت تختبر هذا مع منشور لا يحتوي على محتوى حقيقي، حاول إنشاء منشور يحتوي على نص فعلي وراجع ما إذا كان ذلك يحدث فرقًا. قد ترغب أيضًا في الاطلاع على كيفية تكوين إعداد محددات التضمين المسموح بها. يمكن استخدام إعداد “محددات التضمين المسموح بها” لمساعدة Discourse في العثور على محتوى الصفحة.
هل تستخدم محرر الكتل (Block Editor) لنشر منشورات WordPress؟ إذا كان الأمر كذلك، كيف يتم إضافة الصور إلى المنشورات؟ هل تستخدم إضافة تضيف كتل صور مخصصة؟
هل المقتطف الذي يتم تحميله يتضمن صور المنشور؟
لا أتوقع أن يتم تحميل المقتطف تلقائيًا هنا. ما أتوقعه هو ظهور زر “إظهار المنشور الكامل”. عند النقر على هذا الزر، يجب أن يتم تحميل المقتطف. عند نشر محتوى المنشور الكامل من WordPress إلى Discourse، يمكنك منع ظهور زر “إظهار المنشور الكامل” عن طريق تعطيل إعداد موقع Discourse embed truncate.
لقد جربت جميع اقتراحاتك، لكنني لم أتمكن من تغيير النتيجة، وهو ما يُرجح أنه مشكلة تتعلق بمهاراتي في استخدام Discourse أكثر من أي شيء آخر.
كان اقتراحك الأول هو التأكد من أن المنشور يحتوي على بعض المحتوى. والمنشورات كانت تحتوي بالفعل على محتوى حقيقي، لذا لا أعتقد أن هذه كانت المشكلة. كما اقترحتَ عليّ مراجعة إعداد “كيفية تكوين محددات التضمين المسموح بها”، وقد قمت بذلك أيضاً، لكنني لم ألاحظ أي فرق حتى الآن. لقد أبقيت هذا الإعداد بسيطاً جداً، بل وأدرجت وسوم
وفئة CSS أخرى (عامة إلى حد ما)، لكن عند النقر على “إظهار المنشور الكامل”، لا يزال يظهر فقط عبارة “جاري التحميل”.
أنا أستخدم محرر الكتل (Block Editor). ولا أملك أي إضافات محددة للصور، لكنني أستخدم Genesis Blocks. ومع ذلك، فإن الصورة التي يحاول Discourse جلبها هي الصورة المميزة للمنشور، وأعتقد أنها ميزة أساسية في WordPress.
أما بخصوص سؤالك: “هل مقتطف المنشور الذي يتم تحميله يتضمن صور المنشور؟” – لا، المنشور لا يتضمن أي صور. ومع ذلك، إذا نقرت على المكان الذي يجب أن تظهر فيه الصورة، فسيتم توجيهي إلى المقالة الأصلية.
سأبحث أكثر في خيار Oneboxing. شكراً لك أيضاً على الروابط إلى ذلك الموضوع.
قد يكون هذا هو سبب المشكلة مع تلك الصورة. سأقوم بالتحقق من ذلك.
لست متأكدًا مما قد يكون السبب في هذه المشكلة. إذا كان موقع Discourse الخاص بك عامًا، هل يمكنك مشاركة رابط لموضوع يواجه هذه المشكلة؟ يمكنك إرساله لي عبر رسالة خاصة إذا فضلت ذلك.
شكرًا مرة أخرى على هذا. الموقع لا يزال في مرحلة الاختبار وليس عامًا. هل يمكن أن يكون هذا هو المشكلة؟
أيضًا، لسبب ما، لا تعمل ميزة Oneboxing. إذا قمت بلصق رابط من موقع مثل CNN.com، فإن الميزة تعمل بشكل ممتاز، لكن من موقعي في مرحلة الاختبار غير الآمن (غير HTTPS)، يتم لصق الرابط فقط. هل ذلك لأن موقع الاختبار غير آمن؟
جعل موقع Discourse خاصًا لا ينبغي أن يسبب مشكلة. هل تخفي موقع WordPress بطريقة ما؟ إذا كان موقع WordPress يحجب الطلبات الواردة من Discourse للحصول على محتوى المنشور الكامل، فسيؤدي ذلك إلى حدوث مشكلة.
موقع Discourse عام. أحببت أن أخفيه أثناء التطوير، لكنني لم أستطع معرفة كيفية وضعه في مرحلة الاختبار. لدي موقع WordPress رئيسي قيد التطوير/الاختبار، وهذا الموقع خاص/مخفي.
أستطيع إجبار تحديث فئة من خلال إضافة WordPress. أفترض، ربما بشكل خاطئ، أن هذا يعني أن Discourse يمكنه الاتصال بالموقع الرئيسي حتى لو كان الموقع الرئيسي في مرحلة الاختبار.