Routing 'fake' sub sub posts

时间:2013-01-15 作者:Martin Alderson

我目前有以下自定义永久链接规则:

/%类别%/%postname%/

我希望/%category%/%postname%/%sometext%显示与/%category%/%postname%/-从那里,我将使用PHP或jQuery在页面上显示不同的内容。

例如:

/关于我们/团队/mike以显示/关于我们/团队页面,然后我将用jQuery突出显示“mike的简历”。

谢谢

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

您需要将新的query\\u var列入白名单:

function add_query_vars($aVars) {
    $aVars[] = "subpage"; // represents the name of the product category as shown in the URL
    return $aVars;
}

// hook add_query_vars function into query_vars
add_filter(\'query_vars\', \'add_query_vars\');
然后需要一个重写规则来匹配URL并传入正确的查询变量:

add_rewrite_rule(\'([^/]+)/([^/]+)/([^/]+)?\',\'index.php?pagename=$matches[1]/$matches[2]&subpage=$matches[3]\',\'top\');
最后,在页面模板上,您需要查找该查询变量,例如。

if( !empty(get_query_var(\'subpage\') )){ 
    // do subpage stuff
    $subpage = get_query_var(\'subpage\');
    // process above value
} else { 
    // not on subpage, do normal page stuff 
}
冲洗permalinks,你就可以开始了。

您可能应该充分利用get\\u template\\u part,如何存储子页面数据取决于您,post-meta可能会起作用,但请记住,它在默认情况下不可搜索,但还有其他问题可以回答该问题

结束

相关推荐

widgetlogic and permalinks

我试图使用widgetlogic在某些页面上有条件地显示菜单。每个菜单都使用如下标记is_page(array(\"Page Name\", \"Page Name 2\" ...)), 在我尝试更改permalinks之前,它一直工作得很好(因此所有菜单都会从各自的页面中消失)。我做错什么了吗?是否有解决方法?