function qtranxf_slug_replace_rewrite_structs($slugs_org, $slugs_new) { global $wp_rewrite; if (empty($wp_rewrite->extra_permastructs)) { return; } if (!is_array($slugs_org)) { $info_org = qtranxf_slug_split_permastruct($slugs_org); $info_new = qtranxf_slug_split_permastruct($slugs_new); qtranxf_slug_replace_rewrite_structs($info_org['slugs'], $info_new['slugs']); //recursive call return; } if (empty($slugs_org)) { return; } if (count($slugs_org) != count($slugs_new)) { return; } foreach ($wp_rewrite->extra_permastructs as $k => $v) { if (empty($v['struct'])) { continue; } reset($slugs_new); foreach ($slugs_org as $value_org) { $value_new = next($slugs_new); $wp_rewrite->extra_permastructs[$k]['struct'] = preg_replace('#(?:[^a-z0-9_\\-%]|^)' . $value_org . '(?:[^a-z0-9_\\-%]|$)#', $value_new, $v['struct']); } } }
function qtranxf_slug_replace($value_org, $value_new, $slugs) { foreach ($slugs as $k => $v) { if ($v == $value_org) { $slugs[$k] = $value_new; } } qtranxf_slug_replace_rewrite_structs($value_org, $value_new); return $slugs; }