هل من الممكن إنشاء سلاسل رسائل مجمعة للعديد من منشورات ووردبريس؟ ربما SQL؟

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

لكن… لا أود فتح وحفظ 1000 منشور يدويًا.

يمكنني بسهولة الحصول على معرفات عناوين المنشورات (wp_post IDs and titles) التي أحتاجها من جدول wp_post. هل يعرف أحد كيفية كتابة جملة SQL لديسكورش لإنشاء خيوط جديدة بالبيانات اللازمة من wp_posts؟

3 إعجابات

هل تستخدم إضافة WP-discourse؟ إذا كان الأمر كذلك، فأنا أعتقد أنه من الأفضل لك أتمتة هذا في ووردبريس.

(لا أعرف كيفية القيام بما تطلبه تحديدًا.)

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

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

على أي حال، لا، أشعر أنه سيكون من الأسهل بكثير استخراج البيانات التي أحتاجها من قاعدة بيانات MySQL الخاصة بـ WordPress، وملئها في قاعدة بيانات Discourse باستخدام SQL. أنا فقط لا أعرف قاعدة بيانات Discourse على الإطلاق، وآمل أن أتمكن من العثور على شخص يعرفها.

أعتقد أنني قد أكتب نصًا برمجيًا Bash لـ WP CLI لفتح وحفظ جميع المنشورات. haha. ربما سأفعل ذلك.

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

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

إعجابَين (2)

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

3 إعجابات

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

  1. يتطلب منك فهم جميع البيانات والبيانات الوصفية المخزنة في كل مثيل.
  2. البيانات والبيانات الوصفية مترابطة، أي أنه بعد نشر منشور بنجاح من WordPress إلى Discourse، يتم حفظ معرف المنشور في Discourse في حقل بيانات وصفية للمنشور في WordPress.

إذا كنت على دراية بكل من 1 و 2، فإن تحديث قواعد البيانات مباشرة قد يكون خيارًا جيدًا، ولكن نظرًا لأنك لست كذلك، فإن هذه ليست فكرة جيدة ما لم تكن ترغب في قضاء الوقت في تعلم ذلك لهذا الغرض فقط. في هذا الصدد، يمكنك توظيف شخص للقيام بذلك نيابةً عنك، ومع ذلك، فإنني أنصحك باستخدام وظيفة إضافة WP Discourse بدلاً من ذلك.

يوفر استخدام إضافة WP Discourse فائدة إضافية تتمثل في إعداد تسجيل الأحداث بالفعل لنشر WP Discourse، مما يعني أنك ستحصل على معلومات مفصلة خاصة بكل منشور في حال فشل أي من عمليات النشر.

من الصحيح أن هذا سيؤدي إلى حوالي 1000 طلب POST إلى Discourse الخاص بك، حيث تقوم إضافة WP Discourse بإرسال موضوع واحد فقط في كل مرة. ومع ذلك، وبما أن هذا هجرة لمرة واحدة، فيمكنك التعامل مع ذلك عن طريق تقسيم العملية إلى دفعات وإدخال فترات توقف (أي “sleep”) في السكربت. أنصحك بإجراء فحص يدوي بعد أول بضع دفعات للتأكد من عملها كما تتوقع.

من حيث السكربت نفسه، ستستخدم طريقة WPDiscourse\DiscoursePublish publish_post_after_save لكل منشور، أي داخل حلقة (مع تقسيم مناسب إلى دفعات وفترات توقف).

7 إعجابات

شكرًا لكم جميعًا!

لم أكن أدرك أن هناك تغييرات في قاعدة البيانات على كلا الجانبين. مثير للاهتمام. أنا على دراية تامة بقاعدة بيانات ووردبريس. ربما أكثر من اللازم. غالبًا ما أذهب إلى قاعدة البيانات أولًا بينما كان ينبغي عليّ استخدام أساليب أخرى.

نعم، أنا ذلك الأحمق المهووس بقواعد البيانات. أحب تصميم وإنشاء قواعد البيانات. لكن… أنا لست على دراية بقاعدة بيانات ديسكورس على الإطلاق (بعد). لذا…

أه نعم… التسجيل الصحيح شيء رائع.

نعم، ممتاز. سأعتبر هذه الإجابة الصحيحة، لأنها بالضبط ما كنت أحتاجه.

ومع ذلك…

ما انتهيت بفعله هو استخدام أداة ووردبريس CLI على النحو التالي

$wp post update 396 398 402 {عدة أخرى هنا} --tags_input=discourse

قبل ذلك، استخرجت قائمة بمعرفات الصفوف من جدول wp_posts التي كان فيها post_status = ‘publish’ و post_type = post

أعطيت تلك القائمة لأمر wp post واستغرق الأمر حوالي 500 مللي ثانية لكل صف باستخدام خادم رباعي النواة. إذا حددت أكثر من 20 صفًا تقريبًا، فإن ديسكورس… ???.. لكن بعد ذلك لن يتم إنشاء أي روابط أخرى. لذا قمت بإعطائها 20 في كل مرة مع تأخير لمدة 30 ثانية وعملت على مشاريع أخرى.

إذن، تلك الإجابة هي خدعة حقيقية، لكن بالنسبة لي (قبل أن أحصل على إجابة @angus)، كانت المسار الأكثر مباشرة.

5 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.