wordpress url重写自定义模板

时间:2012-11-07 12:54:18

标签: wordpress url-rewriting

我是wordpress的新手,并且如此困惑,以至于如何为wordpress自定义模板创建自定义网址重写。我也尝试在谷歌上找到它但没有运气。我找不到合适的解决办法。

这是我目前的网址结构:

http://example.com/chiptuning/search/?brand=Audi

使用自定义网址重写我想将其转换为

http://example.com/chiptuning/search/brand/audi

或者可能是

http://example.com/chiptuning/search/Audi

还请提及放置代码的位置。

更新

@Mike Lewis提供的答案已经被我使用了,但它没有提供我想要的东西,无论如何感谢@Mike Lewis的回复。

其他人对此问题有任何建议吗?我请快点。

提前完成。

1 个答案:

答案 0 :(得分:3)

WordPress为查找要使用的模板文件做了自己的魔力。如果您了解重写规则,可以查看以下页面:

或者,这里有一些更简单的解决方案:

使用分层页

site.com/page1/sub-page/sub-page /

您必须使用浏览器通过/ wp-admin /添加页面,然后您可以在其中设置其父页面。您还可以选择要使用的特定模板(PHP主题文件)(请参阅:Theme Development并向下滚动到自定义页面模板)。

使用分层类别

您还可以使用分层类别来标记帖子,然后在类别存档页面上列出它们。例如:

您可以访问site.com/category/brand/audi/(请注意,您可以在wordpress设置中更改此网址的“类别”基础部分。)

您可以为各种代码存档页面创建模板文件:category-brand.php将加载site.com/category/brand/网址,category-audi.php将加载site.com/category/brand/audi/网址。

注意:根据您的网站需要的动态程度,您可能需要跳过使用类别 - {tag} .php,以便它落入通用category.php。在这种情况下,我相信上面的两个网址都会使用泛型category.php(在没有更具体的模板文件的情况下 - Template Hierarchy向下滚动以查看模板层次结构图。)

这样可以防止您为每个标记创建单独的文件。使用get_query_var()方法获取特定的类别标记。

最后但并非最不重要

如果你仍然难倒,还有另一种方法可以对网址进行切片和切块,而不使用重写规则。 BuddyPress(wordpress的一个插件)有一个函数可以将url分成几块(/ one / two / three /),然后在PHP中使用它们。我不确定这是如何工作的,但是如果你想看看,你可以谷歌/下载BuddyPress,并查看buddypress/bp-core/bp-core-catchuri.php文件。

这是doc块:

/**
 * Analyzes the URI structure and breaks it down into parts for use in code.
 * BuddyPress can use complete custom friendly URI's without the user having to
 * add new re-write rules. Custom components are able to use their own custom
 * URI structures with very little work.
 *
 * @package BuddyPress Core
 * @since BuddyPress (1.0)
 *
 * The URI's are broken down as follows:
 *   - http:// domain.com / members / andy / [current_component] / [current_action] / [action_variables] / [action_variables] / ...
 *   - OUTSIDE ROOT: http:// domain.com / sites / buddypress / members / andy / [current_component] / [current_action] / [action_variables] / [action_variables] / ...
 *
 *  Example:
 *    - http://domain.com/members/andy/profile/edit/group/5/
 *    - $bp->current_component: string 'xprofile'
 *    - $bp->current_action: string 'edit'
 *    - $bp->action_variables: array ['group', 5]
 *
 */
function bp_core_set_uri_globals() {