لقد قمت عن قصد بإنشاء نفس الفئات تمامًا في كل من WordPress و Discourse، ولكن لا يوجد خيار لتعيين فئة المنشور كفئة للموضوع، لذلك يتعين عليّ تعيينها يدويًا بعد كل مرة أنشر فيها.
بعد ذلك، بغض النظر عن الفئة التي اخترتها، سيتم نشر المنشور دائمًا في فئة باسم مطابق لاسم فئة منشور ووردبريس. تأكد من تطابق هذه الأسماء تمامًا وإلا فلن تعمل.
إن الدعم الرسمي لهذه الميزة سيكون محفوفًا بالصعوبات لأنه سيعتمد على المستخدمين الذين يحتفظون بقوائم فئات بنفس الأسماء بالضبط، ويفترض أن نماذج الفئات بين المنصتين تظل كما هي، ويتعين التعامل مع حقيقة أن نظام تصنيف ووردبريس قابل للتغيير بطبيعته (أي أنه لن يكون هو نفسه في كل تثبيت للمكون الإضافي على ووردبريس).
بعد ذلك، أحصل على خطأ too few arguments بخصوص function wpdc_change_post_category( $category, $post_id ) {. قد يكون ذلك لأن $category غير معرف؟ قد أختبر المزيد لاحقًا.
فيما يتعلق بإضافة هذا كميزة رسمية، لا أعتقد أنه سيكون مشكلة كبيرة، مع الأخذ في الاعتبار خيارين:
خيار Force Category Update موجود بالفعل. يمكن توسيع هذا ليشمل ميزة تجبر فئات Discourse/WordPress على التزامن دائمًا.
أو
ربما لا يحتاجون إلى التزامن على الإطلاق، بل إذا كانت الفئة غير موجودة في Discourse، فسيتم إنشاؤها ببساطة.
لدي نوع منشور مخصص policies مع تصنيف مخصص هرمي policy_categories على مستويين (أصل/فرع). هناك حوالي 45 فئة فرعية.
لقد قمت بإعداد WP Discourse لنشرها في فئة Discourse policies، ولكن بدلاً من إنشاء مجموعة كبيرة من الفئات الفرعية (بعد قراءة هذا المنتدى) يبدو أنه من الأفضل إنشاء الفئات الفرعية كعلامات.
سيكون لدي مستخدمو ووردبريس مختلفون ينشرون policies بمستويات خبرة مختلفة (لو كنت أنا فقط من يقوم بذلك لكانت سأضع علامات عليها في كل مرة). لذلك لتوفير خطوة إضافية وربما قدر كبير من مشكلات الدعم، من الأفضل أن يكون هناك فلتر لجعل WP Discourse يأخذ فئات ووردبريس ويضيف علامات Discourse المطابقة.
سأكون سعيدًا للتأكد من أن الفئات والعلامات تتطابق مع المعرفات/الأسماء المستعارة وما إلى ذلك، حيث سأحتفظ بأي تحديثات لهذه الأمور كمسؤول.
بينما لا يوجد فلتر علامات مخصص، هناك فلتر عام يمكنك استخدامه: wpdc_publish_body. في حالتك سيبدو كالتالي:
add_filter( 'wpdc_publish_body', function( $body, $remote_post_type, $post_id ) {
// code to get the post policy category
if ( // if there is a post policy ) {
$policy_tags = // map the post policy category to the appropriate tag(s)
$body['tags'] = $policy_tags
}
return $body;
}, 10, 3);