干杯
出于SEO的原因,我尝试删除我的自定义等级服务帖子类型(示例名称:“ custom-service”)的基本信息。这些方法称为SEO筒仓。我尝试了不同的方法来获得以下网址结果。
它的外观如何:
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/
我使用以下教程来实现这些结构:
有些人有同样的问题:
起初,我实现了Matthew Boynes的第一个教程的解决方案。除了我的分页以外,一切都正常。如果使用这些解决方案,我的分页将停止工作。
函数add_rewrites()
中的以下代码可能会破坏分页:
add_permastruct( 'custom-service', "%custom-service%", array(
'ep_mask' => EP_PERMALINK
));
您无法调用我的博客页面。以下网址停止工作:
https://foo.bar/blog/page/2
https://foo.bar/cpt/page/2
在第二次尝试中,我删除了Matthew Boynes的代码。存档中没有分页的博客是没有用的。然后,我从“ kellenmace.com”实施了该解决方案。为了使代码适用于分层帖子类型,您必须修改post_type_link
的tutorials筛选器功能:
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/
有点令人沮丧。也许有人在删除分层帖子类型的基础代码方面有经验,并且对我的项目有很好的提示。
如果您有任何疑问,或者想要进一步的信息或代码,请随时与我联系。
感谢您阅读我的问题!
答案 0 :(得分:0)
将功能更改为此,以解决所有情况:
尝试此代码,
org.asynchttpclient.netty.channel.DefaultChannelPool