- סטטוס
- פתוח
- תגיות נושא
- Bug
סקירה כללית של התקלה
כאשר אתה מקצה מונחים לפוסטים, WordPress שומר סך מצטבר של מספר הפוסטים שאליהם הוקצה מונח מסוים.
אם תסיר מונח מפוסט כלשהו, הספירה פוחתת. אם ההגדרות קובעות סנכרון מונחים, המונח המתורגם יוסר מהפוסט המתורגם, אך הספירה אינה יורדת.
פתרון עוקף
באפשרותך להוסיף את קטע הקוד הבא (באמצעות תוסף, או בקובץ functions.php של ערכת העיצוב שלך) כדי לאלץ חישוב מחדש של ספירת המונחים עבור התרגומים:
add_action( 'deleted_term_relationships', function($object_id, $tt_ids, $taxonomy){
$trids = array();
$translated_tt_ids = array();
foreach ($tt_ids as $tt_id) {
$trids[] = apply_filters( 'wpml_element_trid', NULL, $tt_id, 'tax_'.$taxonomy );
}
foreach ($trids as $trid) {
$translations = apply_filters( 'wpml_get_element_translations', NULL, $trid, 'tax_'.$taxonomy );
foreach ($translations as $lang => $translation) {
$translated_tt_ids[] = $translation->element_id;
}
}
$translated_tt_ids = array_diff( $translated_tt_ids, $tt_ids );
if ( count( $translated_tt_ids ) ) {
wp_update_term_count( $translated_tt_ids, $taxonomy );
}
}, 11, 3);