WP允许您通过以下方式添加自定义重写规则WP_Rewrite - 使用它们,你几乎可以实现任何你想要的东西——如果你喜欢RegEx,那将是轻而易举的事。
WordPress需要触发器来识别您请求的页面类型,因此它是默认/类别/匹配规则以及其他许多规则。
如果打印出以下内容,则可以查看所有当前重写规则:
global $wp_rewrite;
echo \'<pre>\';
print_r($wp_rewrite);
echo \'</pre>\';
你要做的就是把你的食物、时尚、欧洲和亚洲鼻涕虫搭配起来,就像它是类别触发词一样。
我以前也做过类似的事情,一旦你开始使用它,你会发现将链接结构与正确的查询匹配起来相当容易,因为所有关于你所请求的页面类型的参数都是通过index.php?key=value
配对。最好自己看看,打印出$wp\\U重写。
下面是我以前使用过的一个简化示例,请将其添加到函数中。php:
if ( !function_exists(\'client_rewrite_rules\') ) {
function client_rewrite_rules() {
global $wp_rewrite;
$new_rules = array(
// add all your rules here, mine below, store|restaurant|bar were my custom taxonomies
\'(store|restaurant|bar)/(.+?)/(store|restaurant|bar)/(.+?)/?$\' => \'index.php?\' . $wp_rewrite->preg_index(1) . \'=\' . $wp_rewrite->preg_index(2) . \'&\' . $wp_rewrite->preg_index(3) . \'=\' . $wp_rewrite->preg_index(4),
\'(store|restaurant|bar)/(.+?)/?$\' => \'index.php?\' . $wp_rewrite->preg_index(1) . \'=\' . $wp_rewrite->preg_index(2)
);
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action(\'generate_rewrite_rules\', \'client_rewrite_rules\');
}
您的类别规则如下:
\'(food|fashion|european|asian)/?$\' => \'index.php?category_name=\' . $wp_rewrite->preg_index(1)
要记住的一件事是,每次更改规则时,都必须刷新规则才能生效。测试时,将以下代码保留在函数中,但在完成后将其取出:
$wp_rewrite->flush_rules();
刷新重写规则的另一种方法是访问设置/永久链接管理页面。
一旦永久链接返回您想要的结果,您将需要创建一个输出链接结构的自定义函数。我有很多分类法,所以类别链接要求我通过分类法和slug。
if ( !function_exists(\'client_category_permalink\') ) {
function client_category_permalink( $linkTax = null, $linkTerm = null ) {
// Bunch of functionality constructing your pretty $url
return trailingslashit($url);
}
}
然后,只要有链接,就可以添加:
<a href"<?php client_category_permalink(\'restaurant\', \'heston-blumenthal\'); ?>">Heston Blumenthal</a>
祝你好运,凯特
PS:如果其他人有一个不使用任何插件的替代解决方案,我会很感兴趣