我需要一些建议。我在主页上有一个部分,动态地从WP db中的自定义表中提取术语列表。我根据测试代码为这些术语中的每一个都创建了一个唯一的自定义URL:
<a href="<?php bloginfo(\'url\'); ?>/test-directory/test-code/<?php echo $record->test_code; ?>">
这很好用。我的下一步是让这些URL在单击时将附带的动态内容加载到模板中。我尝试了下面的代码来创建指向模板的重写规则,但它就是不起作用。它不加载模板,而是加载默认的博客模板。我正在使用儿童主题,但这应该可以:
function my_add_query_vars( $qvars ) {
$qvars[] = \'test-directory\';
$qvars[] = \'test-code\';
return $qvars;
}
add_action(\'query_vars\', \'my_add_query_vars\');
function my_add_rewrite_rules( $wp_rewrite ) {
$newrules = array();
$new_rules[\'^test-directory/(.*)/(.*)\'] = \'index.php?test-directory=$matches[1]test-code=$matches[2]\';
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action(\'generate_rewrite_rules\', \'my_add_rewrite_rules\');
function my_template_redirect() {
if( get_query_var(\'test-code\') ) {
include_once(locate_template(\'template-faq-fullwidth.php\', true));
exit();
}
}
add_action(\'template_redirect\',\'template_redirect\');
我们将一如既往地感谢您的帮助。谢谢
最合适的回答,由SO网友:hacksy 整理而成
首先,不要忘记通过访问Settings -> Permalinks 只需点击Save Changes
现在你的问题是,你似乎错过了&
\' 在您的查询中:
$new_rules[\'^test-directory/(.*)/(.*)\'] = \'index.php?test-directory=$matches[1]&test-code=$matches[2]\';
请注意
&
之后
$matches[1]
另一方面,“template\\u redirect”操作没有调用正确的函数(template_redirect
而不是my_template_redirect
)