我希望有人能帮助我重写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重写了分类法
所以目前URLwww.baseurl/taxonomy
然后我注册相关参数的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\u 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);
所以我的URL目前www.baseurl/taxonomy/[父术语]/分类法是静态的
这给了我90%的正确URL
现在我遇到了问题。。。
此结构存在于www.baseurl/taxonomy/[parent term]/[post_name](例如,post_name可能是关于页面或与该父项相关的页面)。
此结构还存在www.baseurl/taxonomy/[parent term]/content,它是所有子术语的自定义存档。每个父项将存在其中一个。内容是一个静态段塞。
我需要的是仅当[child\u post\u name]有[child term]时才重写www.baseurl/taxonomy/[parent term]/content/[child\u post\u name]。此外,仅当[Grander_post_name]有[Grander_post_name]时,才重写www.baseurl/taxonomy/[parent term]/content/[child_post_name]/[Grander_post_name]。
所以换个说法。。。
如果一个帖子只有一个父术语,网址应该www.baseurl/taxonomy/[父术语]/[post_name]我已经有工作。
但是如果一个帖子有一个子术语,那么它应该www.baseurl/taxonomy/[父术语]/内容/[child_post_name]
最后,如果一篇文章有一个孙子术语,那么它应该是www.baseurl/taxonomy/[parent term]/content/[child\u post\u name]/[grant\u post\u name]
我真的不知道如何在孩子和孙子之间建立这种关系。我的一个想法是让孩子给另一个自定义的帖子类型命名,并对其进行重写,使其符合该结构……但这需要大量的工作,甚至至少某种形式的确认会让我感觉更好。
即使是在正确的方向上,我也会非常感激,因为我被这个问题难住了。
谢谢。
我能够回答我自己的问题。我想如果其他人有类似的问题,我会回答这个问题。
我的问题实际上在于我的帖子类型的结构及其相应的分类法。我没有使用子孙后代术语,而是将它们分成它们自己的父术语,当我注册我的帖子类型时,我将它的功能类型更改为页面。
我没有把这些术语变成彼此的孩子,而是把帖子本身分等级。这解决了我的URL问题,也使我的内容更有条理。
如果有人需要一个示例,我很乐意发布一个代码示例
我试图显示自定义分类法中的术语和描述列表。 我有以下代码,它返回所有术语,并按字母顺序描述指定的自定义分类法。然而,我只想展示最近的五个术语,从最新的一个开始。
我已经创建了一个包含多个分类法的自定义查询,在此基础上,我使用进行分页。分类法是通过下拉选择表单来选择的,使用可以过滤帖子,这只是一个临时解决方案,但目前效果良好,值得注意。 分页工作正常,当选择分类术语时,帖子可以正确显示,但是当我离开第一页,比如说我进入第2页,在下拉选择器中选择不同的分类术语时,URL会保留当前页码,并向其中添加选择器ID。我想实现的是,当我在选择器中单击不同的分类法时,新选
我有一个自定义的文章类型(媒体文章),它使用一些自定义字段,有一个自定义分类法(媒体文章类别)和该分类法中的14个术语。我可以使用CPT归档模板输出所有自定义帖子。 我在侧边栏中还有一个菜单,它列出了用于过滤自定义帖子的术语(我使用了一个自定义WP菜单小部件来创建列表)。 我用一个查询设置了一个自定义分类模板。根据args中放置的分类术语,我能够成功地组合或单独显示帖子。因此,如果我不需要使用过滤
我正在尝试创建一个查询,其中我在自定义帖子类型中创建了多个类别(分类法),然后在主页上根据具体的内容进行查询,这样做很好。目前我有3种分类法: 当前特价 meineke-差异 特色 我已经编写了拉动这些的代码。我遇到的问题是,在主页上,当这些帖子也附加到“特色”分类法时,它只需要拉这些帖子。因此,这方面的标准逻辑示例如下: 如果分类法=当前特价商品和特色商品,则成功或失败 但是它所做的是把它们都拉
我已经搜索了又搜索,除了我称之为“hack方法”的方法之外,找不到其他方法将自定义分类添加到自定义管理菜单中。 然后我注册我的帖子类型并确保它们使用 这可以工作,自定义帖子类型显示在我的自定义菜单中。 但是自定义分类法不接受同一属性的字符串,只接受true或false。 因此,要添加它,您必须创建一个子菜单页 这是一种“黑客”方式。 还有别的办法吗?如果不修改WordPress核心,我可以覆盖re
我有一个自定义的帖子类型设置,有许多类别和子类别。 我试图做的是创建一个页面,显示特定类别中的所有帖子,并使用一个菜单列出所有类别子类别,以便可以过滤帖子。 我已尝试复制存档模板并将其重命名为分类法-(我的自定义分类法)。php,如果我转到slug,它会显示某些帖子,并使用