В Wordpress стоит структура постоянных ссылок вида «site.com/%postname%/». Необходимо, чтобы посты с категорией 29 работали при вводе
https://site.com/dictionary/post-name/. Подскажите, пожалуйста, почему этот код не работает:
function dictionary_permalink($permalink, $post) {
$category = get_the_category($post->ID);
if (!empty($category) && $category[0]->cat_ID == 29) {
$permalink = trailingslashit( home_url('/dictionary/'. $post->post_name . '/'));
}
return $permalink;
}
add_filter('post_link', 'dictionary_permalink', 20, 3);
function dictionary_rewrite() {
add_rewrite_rule(
'^dictionary/([^/]*)/?',
'index.php?pagename=$matches[1]',
'top'
);
}
add_action('init', 'dictionary_rewrite');
При вводе
https://site.com/dictionary/post-name/ показывает 404, при вводе
https://site.com/index.php?pagename=post-name перенаправляет на
https://site.com/post-name/ (корректно загружается)