2012-10-27 66 views
1

我在過去的6年中一直使用舊的PHP-Nuke網站,最後轉換爲Wordpress。可能有100多箇舊鏈接發佈在其他網站上,我需要重定向到新的鏈接。將舊的PHP-Nuke頁面鏈接重寫爲wordpress鏈接

舊的鏈接看起來像這樣

http://www.mysite.com/modules.php?name=NDReviews&op=Story2&reid=387 

新的鏈接看起來像每個老鏈接是=故事#和裏德=#

改變這種

http://www.mysite.com/cooler-master-ceres-400-headphones/2/ 

兩個項目

=故事#現在需要指向新的/#/

而舊的reid =#需要指向/ new-name-for-review/

謝謝!

回答

0

我希望你知道如何編寫一個簡單的插件。這可能是骨骼開始播放:

add_action('init', 'flushRewriteRules'); 
function flushRewriteRules() 
{ 
    global $wp_rewrite; 
    $wp_rewrite->flush_rules(); 
} 

add_filter('rewrite_rules_array', 'insertMyRewriteRules'); 
function insertMyRewriteRules($rules) 
{ 
    $newrules = array(); 

    // convert: 
    // http://www.mysite.com/modules.php?name=NDReviews&op=Story2&reid=387 
    // to: 
    // http://www.mysite.com/NDReviews/2/ 

    $newrules['modules.php?name=([^&]*)&op=Story(\d+)&reid=(\d+)'] = 'index.php?pagename=$matches[1]&p=$matches[2]'; 

    // or maybe just redirecting Story# to p=# (post id) 

    // convert: 
    // http://www.mysite.com/modules.php?name=NDReviews&op=Story2&reid=387 
    // to: 
    // http://www.mysite.com/cooler-master-ceres-400-headphones/2/ 

    $newrules['modules.php?name=([^&]*)&op=Story(\d+)&reid=(\d+)'] = 'index.php?&p=$matches[2]'; 

    return $newrules + $rules; 
} 

只是一個想法,嘗試一個可能的解決方案。無論如何都是完全可以實現的。