自定义模板重写WordPress URL



我是WordPress的新手,并且变得如此困惑,以至于如何为WordPress自定义模板创建自定义URL。我也尝试在Google上找到它,但没有运气。我找不到适当的解决方案。

这是我当前的URL结构:

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

使用自定义URL重写,我想将其转换为

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

或可能是

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

也请提及要放置代码的位置。

update

我已经使用了@mike Lewis提供的答案

其他人对这个问题有任何建议吗?我需要快速。

thanx提前。

WordPress做自己的魔术,以查找要使用的模板文件。如果您知道重写规则,则可以浏览以下页面:

  • http://codex.wordpress.org/rewrite_api/add_rewrite_rule
  • http://codex.wordpress.org/class_reference/wp_rewrite

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

使用层次页面

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

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

使用层次类别

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

您可以拥有site.com/category/brand/audi/(注意,您可以在WordPress设置中更改此URL的"类别"基础部分)。

您可以为各种标签存档页面创建模板文件:caty-brand.php将加载site.com/category/brand/ URL,并且类别 - audi.php将加载site.com/category/brand/audi/ URL。

注意:根据您的网站需要的动态,您可能需要使用类别-R {tag} .php跳过,以便它属于通用类别。在这种情况下,我相信上述两个URL都会使用generic centory.php(如果没有更具体的模板文件 - 模板层次结构滚动以查看模板层次结构图)。

这将阻止您为每个单独的标签创建一个单独的文件。使用get_query_var()方法获取特定类别标签。

最后但并非最不重要的

如果您仍然很困难,则在不使用重写规则的情况下,还有另一种切片和切成URL的方法。BuddyPress(用于WordPress的插件)具有将URL碎成零件(/一个/二/三/)的函数,然后在PHP中使用它们。我不确定这是如何工作的,但是如果您想看看,可以Google/Download 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() {

最新更新