コード例 #1
0
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']);
        }
    }
}
コード例 #2
0
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;
}