Я потратил несколько часов на то, чтобы найти решение этой проблемы, прочитать много статей и попробовать множество исправлений как из stackoverflow, так и из других источников, все без успеха.Wordpress Custom Permalink Структура для пользовательского типа сообщений
Я пытаюсь создать структуру permalink для настраиваемого типа сообщения, которое я создал в Wordpress (версия 4.5.3). Тип сообщения называется «видео». По умолчанию мои постоянные ссылки выглядят как «http://localhost.wordpress/videos/my-video-post». Я хотел бы заменить «видео» на ссылку с названием категории для сообщения, то есть 'http://localhost.wordpress/computer-lessons/my-video-post', где категория - «уроки компьютера». Мне удалось создать рабочие константы, такие как «http://localhost.wordpress/categories/computer-lessons/my-video-post», используя следующий код, но я хочу избавиться от части «/ categories /» в ссылке. Код Сейчас я использую это
add_action('init', 'video_post_type');
function video_post_type() {
register_post_type('video', array(
'labels' => array(
'name' => 'Videos',
'singular_name' => 'Video',
),
'rewrite' => array('slug' => 'categories/%category%'),
'taxonomies' => array('post_tag', 'category'),
'description' => 'Video resources.',
'public' => true,
'menu_position' => 20,
'supports' => array('title', 'editor', 'custom-fields')
));
}
function videos_post_link($post_link, $id = 0){
$post = get_post($id);
if (is_object($post)){
$terms = wp_get_object_terms($post->ID, 'category');
if($terms){
return str_replace('%category%' , $terms[0]->slug , $post_link);
}
}
return $post_link;
}
add_filter('post_type_link', 'videos_post_link', 1, 3);
Я пробовал много, много вариаций этого кода, но всякий раз, когда я получаю структуру, я ищу постоянную ссылку дает 404.
Я начинаю думать, что это может быть невозможно, потому что я прочитал так много статей и сообщений, связанных с этим, и не нашел рабочего решения.
Большое спасибо заранее.
Спасибо за ответ mattkrupnik. К сожалению, я не могу проверить ваше решение, так как я закончил проект, над которым работал, и у меня больше нет доступа к коду, но я обязательно попробую ваше решение, если и когда я снова столкнусь с этой проблемой. –