我正在使用wordpress。 我已經從管理員創建了頁面經銷商配置文件併爲其分配了模板。現在我想傳遞一個參數一樣wordpress將參數傳遞給自定義模板
SITE-URL/dealer-profile/SUV
我已經添加以下到我.htaccess
RewriteRule ^dealer-profile/([a-zA-Z0-9_-]+)(|/)$ index.php?pagename=dealer-profile&dealer=$1 [QSA]
我也曾嘗試以下
add_rewrite_rule('dealer-profile/([^/]+)', 'index.php?pagename=dealer- profile&dealer=$matches[1]', 'top');
flush_rewrite_rules(false);
當我請求SITE-URL/dealer-profile/SUV
,它會自動重定向到SITE-URL/dealer-profile
請建議,我錯了。
現在我做以下
function themeslug_query_vars($qvars) {
$qvars[] = 'dealer';
return $qvars;
}
add_filter('query_vars', 'themeslug_query_vars' , 10, 1);
function add_rewrite_rules($aRules) {
$aNewRules = array('dealer-profile/([^/]+)/?$' => 'index.php?pagename=dealer-profile&dealer=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');
但這是工作的數字只喜歡 - 測試/經銷商高調/ 234234 /工作 - 測試/經銷商高調/ 234234 /不工作
解決方案
編號:http://codex.wordpress.org/Class_Reference/WP_Rewrite
add_filter('rewrite_rules_array','my_insert_rewrite_rules');
add_filter('query_vars','my_insert_query_vars');
add_action('wp_loaded','my_flush_rules');
// flush_rules() if our rules are not yet included
function my_flush_rules(){
$rules = get_option('rewrite_rules');
if (! isset($rules['(dealer-profile)/(.*)$'])) {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
}
// Adding a new rule
function my_insert_rewrite_rules($rules)
{
$newrules = array();
$newrules['dealer-profile/(.*)$'] = 'index.php?pagename=dealer-profile&dealer=$matches[1]';
return $newrules + $rules;
}
// Adding the id var so that WP recognizes it
function my_insert_query_vars($vars)
{
array_push($vars, 'dealer');
return $vars;
}
個
非常感謝您的幫助@@ jnhghy - Jantea Alexandri
最後一行有一個錯字,2個URL(工作網址和不工作的URL)是相同的:test/dealer-profile/234234 /正在運行 - test/dealer-profile/234234 /請問corect那? – 2014-12-03 07:11:07