add_action('init', 'my_replace_post_url', 0);
function my_replace_post_url($permalink, $post_id, $leavename) {
global $wp_rewrite;
$my_structure = '/%my_tax_1%/%my_tax_2%/%my_type_post%';
$wp_rewrite->add_rewrite_tag("%my_type_post%", '([^/]+)', "my_type_post=");
$args = array(
'with_front' => false
);
$wp_rewrite->add_permastruct('my_type_post', $my_structure, $args);
}
add_action('init', 'my_replace_tax_2', 0);
function my_replace_tax_2($permalink, $post_id, $leavename) {
global $wp_rewrite;
$my_structure = '/' . $my_var . '/%my_tax_2%';
$wp_rewrite->add_rewrite_tag("%my_tax_2%", '([^/]+)', "my_tax_2=");
$args = array(
'with_front' => false
);
$wp_rewrite->add_permastruct('my_tax_2', $my_structure, $args);
}
Исходников уже нет. Может поможет эта статья.
В моей реализации, насколько я помню, был один недостаток. Каждая добавленная категория требовала прописать огромное количество правил. По этой причине поглядывал на мультисайт, но тогда его функционал был плохо прописан, не хватало многих функций, стандартные в нём работали неверно и прочее.