发布类型,分类和路由

时间:2015-03-31 11:48:23

标签: wordpress routing taxonomy

我已经准备放弃Wordpress了。

我有这个问题。我已经通过wp-types插件创建了一个自定义的post-type。我可以显示它并显示它的帖子。

但是,我创建了一个自定义页面,其中包含一个用于呈现帖子的自定义模板。我这样做是因为该网站使用多种语言,我需要使用该特定语言的网址。

因此,后期类型不会通过标准 archive- {post-type-name} .php 文件显示,而是显示自定义模板和自定义wordpress页面。 仅仅因为我需要网址与给定的页面语言使用相同的语言,例如:

myurl.com/{name_in_one_language} 
and 
myurl.com/{name_in_another_language}

问题在于我的自定义帖子类型附加了自定义分类。在呈现帖子之前,我选择分类法,然后根据分类名称呈现页面的其余部分。例如:

myurl.com/paintings/?category=category_name 
|| or || 
myurl.com/paintings/?author=painting_author

问题是客户端不喜欢那种自定义url参数。他请求我把它改成以下格式:

myurl.com/paintings/{taxonomy}/{painting}

分类法是作者姓名或艺术类型。绘画页面本身只是一个中间件,用于选择需要显示所需分类的帖子。

我已经没有了如何去做的想法。完全。

我尝试使用 archive- {post-type-name} .php 解决方案,不知道wp-types插件重写是如何工作的。尝试使用插件中的wordpress永久链接语法,无法识别它。

基本上我需要的是以下内容:对于我的自定义页面,它有一个自定义模板,使用自定义分类法呈现自定义后期类型,以便按以下方式进行路由:

myurl.com/{page-with-template-that-renders-custom-post-type}/{post-type-taxonomy}/{post}

我真的觉得Wordpress难以使用,你必须注入代码,处理路由,注册类型。感觉就像你只是把它拼凑在一起制造一个可怕的怪物,它会给每个人喷出代码胆汁。

1 个答案:

答案 0 :(得分:0)

首先,将固定链接设置为“帖子名称”。阅读Wordpress的模板层次结构,了解工作原理:https://codex.wordpress.org/Template_Hierarchy

如果您创建分类 - {taxonomy-slug} .php模板,则可以导航到myurl.com/paintings/{taxonomy}/{taxonomy-term}并在模板中使用以下内容

$taxonomy = get_query_var( 'taxonomy' );
$term = get_query_var( 'term' );

..并在查询中使用这些变量。

单个{post-type-slug} .php将用于呈现帖子本身。

我认为不建议将分类法包含在帖子的URL中,因为这些可能会发生变化,或者您可能有多个与帖子相关的术语。但是,如果有必要,请查看这篇文章:http://shibashake.com/wordpress-theme/add-custom-taxonomy-tags-to-your-wordpress-permalinks