вот они.Они работают правильно.Первое соответствует /[lang]/inspiration/testimonial/posty-name
urls, другое то же самое без [lang], что подразумевается /inspiration/testimonial/posty-name
.Как сделать все это с помощью одного регулярного выражения?
add_action('init', 'add_custom_rewrites');
function add_custom_rewrites(){
add_rewrite_rule(
'^(en|fr|es|de)/inspiration/testimonial/([^/]*)?',
'index.php?post_type=testimonial&lang=$matches[1]&name=$matches[2]',
'top'
);
add_rewrite_rule(
'^inspiration/testimonial/([^/]*)?',
'index.php?post_type=testimonial&name=$matches[1]',
'top'
);
}
Другими словами, я хотел бы сопоставить lang, только если в URL-адресе найден один из (en|fr|es|de)
, в противном случае не добавляйтеlang queryvar, OR, в моем случае то же самое, используйте значение по умолчанию для lang queryvar (es. lang = it).