我希望有人可以帮我修改Wordpress网址...我已尝试过一对夫妇,但到目前为止还远远没有。为了让你了解我在哪里......
我首先注册我的分类
function curriculum_taxonomy() {
register_taxonomy(
'taxonomy_type',
'taxonomy',
array(
'hierarchical' => true,
'show_admin_column' => true,
'label' => 'taxonomy type',
'query_var' => true,
'rewrite' => array(
'slug' => 'taxonomy',
'with_front' => true,
'hierarchical' => true
)
)
);
}
add_action( 'init', 'curriculum_taxonomy');
注册的taxonomy_type,带有重写的分类标本
所以目前网址是www.baseurl / taxonomy
然后我注册了相关args为
的post_type $args = array(
'capability_type' => 'post',
'rewrite' => array('slug' => 'taxonomy/%parent_term%','with_front' => false),
'taxonomies' => 'taxonomy_type',
'query_var' => true,
'can_export' => true,
'publicly_queryable' => true,
);
然后我以编程方式将%parent_term%替换为术语slug
function filter_taxonomy_link($link, $post) {
if ($post->post_type != 'taxonomy') {
return $link;
}
if ($cats = get_the_terms($post->ID, 'taxonomy_type')) {
$linkSlug = array_pop($cats)->slug;
$link = str_replace('%parent_term%', $linkSlug, $link);
return $link;
}
}
add_filter('post_type_link', 'filter_curriculum_link', 10, 2);
所以我的网址目前是www.baseurl / taxonomy / [parent-term] / ,分类标准是静态的
这为我提供了90%正确的网址
现在,我遇到了问题...
这种结构存在 www.baseurl / taxonomy / [parent-term] / [post_name] (例如post_name可能是一个关于该父术语的关于页面或某些页面。
此结构还存在 www.baseurl / taxonomy / [parent-term] / content ,它是所有子条款的自定义存档。其中一个将按父母一词存在。内容是一个静态的slu。。
我需要的是仅当[child_post_name]有[child-term]时才重写 www.baseurl / taxonomy / [parent-term] / content / [child_post_name] 。仅当[grandchild_post_name]具有[孙子术语]时,还重写 www.baseurl / taxonomy / [parent-term] / content / [child_post_name] / [grandchild_post_name] 。
所以重新说明......
如果帖子只有一个父词,则网址应该是 www.baseurl / taxonomy / [parent-term] / [post_name] ,我已经有效了。
但如果帖子有子词,那么它应该是 www.baseurl / taxonomy / [parent-term] / content / [child_post_name]
最后,如果帖子有孙子词,那么它应该是 www.baseurl / taxonomy / [parent-term] / content / [child_post_name] / [grandchild_post_name]
我真的不确定如何在child_post_name和grandchild_post_name之间建立这种关系。我有一个想法是让child_post_name成为另一个自定义帖子类型,并在其前面重写,以便它适合于那个结构...但这就是很多工作,甚至至少某种确认会使我感觉好多了。
即使是朝着正确方向的一点,我也会非常感激,因为我很难过。
感谢。
答案 0 :(得分:0)
我能够回答我自己的问题。如果其他人有类似的问题,我想我会回答这个问题。
我的问题实际上是我的帖子类型及其相应的分类法的结构。我没有使用子孙的术语,而是将它们分成他们自己的父词,当我注册我的帖子类型时,我将它的能力类型改为页面。
我没有将彼此的条款作为彼此的条款,而是将帖子自己分层。这解决了我的网址问题,也使我的内容更加井井有条。
如果有人需要一个例子,我很乐意发布代码示例