Polylang – how to properly update option 'category_children
-
I am trying to set the parent for a translated category. The wp_options table has an entry ‘category_children’ that must contain all the parents. This value does not get updated. Here is my code.
function set_category_translation($index, $targetlocale, $catname, $uislug, $description){
$tgt_slug = substr($targetlocale, 0, 2);
$src_cat = get_category($index);
$src_slug = pll_get_term_language($index);
//Wordpress only allows assigning translation of source parent as this items parent.
$parent = pll_get_term($src_cat->parent, $tgt_slug);
//bug in wp_insert_category used category_nicename rather than category_slug to set slug value
$trans_cat_values = array(‘cat_name’ => $catname, ‘category_nicename’ => $uislug, ‘category_description’ => $description, ‘category_parent’ => $parent);
$tran_cat = wp_insert_category($trans_cat_values);
if($tran_cat == 0){
errorlog(“failed to create translation category”, __FUNCTION__);
return;
}
debuglog(‘created category for cat_name:’ . $catname . ‘. Resultant index:’. $tran_cat, __FUNCTION__);
pll_set_term_language($tran_cat, $tgt_slug);//associate the translations for given category with one another
$slug_array = array_keys(get_polylang_langs());
$slug_index = array();
foreach ($slug_array as $slug){
$tmpindex = pll_get_term($index, $slug);
if($tmpindex != 0) {
$slug_index[$slug] = $tmpindex;
}
}
$slug_index[$tgt_slug] = $tran_cat;
pll_save_term_translations($slug_index);
}
- The topic ‘Polylang – how to properly update option 'category_children’ is closed to new replies.