Cheers,
по причинам SEO, я пытаюсь удалить базовый фрагмент моего настраиваемого типа поста иерархического сервиса (пример имени: "custom-service").Этот метод называется SEO силосование.Я пробовал разные методы, чтобы получить следующий URL-адрес.
Как это не должно выглядеть:
https://foo.bar/custom-service/seo-agency/
https://foo.bar/custom-service/seo-agency/seo-workshop/
https://foo.bar/custom-service/foobar-agency/
https://foo.bar/custom-service/foobar-agency/foobar-workshop/
Как это должно выглядеть:
https://foo.bar/seo-agency/
https://foo.bar/seo-agency/seo-workshop/
https://foo.bar/foobar-agency/
https://foo.bar/foobar-agency/foobar-workshop/
Я использовал следующееучебные пособия для реализации этих структур:
Есть некоторые люди с такой же проблемой:
Сначала я реализовал решение первого урока от Мэтью Бойнса.Все работает, кроме моей нумерации страниц.Если я использую эти решения, моя нумерация страниц перестает работать.Может быть, следующий код из функции add_rewrites()
нарушает нумерацию страниц:
add_permastruct( 'custom-service', "%custom-service%", array(
'ep_mask' => EP_PERMALINK
));
Вы не можете вызвать страницы моего блога.Следующие URL перестают работать:
https://foo.bar/blog/page/2
https://foo.bar/cpt/page/2
Во второй попытке я удалил код Мэтью Бойнса.Блог без нумерации страниц в своем архиве бесполезен.Затем я реализовал решение от "kellenmace.com".Чтобы код работал для иерархических типов постов, вам нужно изменить функцию фильтра обучающих программ для post_type_link
:
function remove_custom_service_slug( $post_link, $post ) {
if ( 'custom-service' === $post->post_type && 'publish' === $post->post_status ) {
if( $post->post_parent ) {
$parent = get_post($post->post_parent);
$post_link = str_replace( '/' . $post->post_type . '/' . $parent->post_name . '/', '/', $post_link );
} else {
$post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link );
}
}
return $post_link;
}
add_filter( 'post_type_link', 'remove_custom_service_slug', 10, 2 );
Но есть одна большая проблема.Он удаляет базовый слаг и родительский слаг:
https://foo.bar/seo-agency/
https://foo.bar/seo-workshop/
Это немного расстраивает.Может быть, у кого-то есть опыт удаления базового слагаемого типа иерархического поста и хороший совет для моего проекта.
Если у вас есть какие-либо вопросы, или если вам нужна дополнительная информация или код, пожалуйста, не делайтеНе стесняйтесь обращаться ко мне.
Спасибо за чтение моего вопроса!