簡體   English   中英

在 Apache RedirectMatch for WordPress 上做數學運算

[英]Doing math on Apache RedirectMatch for WordPress

這類似於,但我不使用Perl模塊。

問題

我正在使用 WordPress 4.3,我需要向post_id添加一個像1122000這樣的1122000以獲取永久鏈接結構。

這是我的默認 URL 結構:

mysite.com/?post_type=orders&p=139

這是所需的永久鏈接結構:

mysite.com/orders/1122139

請注意,我們不能將1122連接到post_id因為post_id將來可能會超過999

我的努力

在我的第一次嘗試中,我使用了add_rewrite_rule函數:

function my_rewrite_basic() {
    add_rewrite_rule( '^orders/1122([0-9]+)/?', 'index.php?post_type=orders&p=$matches[1]', 'top');
}
add_action('init', 'my_rewrite_basic');

僅當 id 低於1000時才有效。

在我的第二次嘗試中,我直接使用了 Apache RedirectMatch,如下所示:

RedirectMatch 301 ^/orders/(\d+) /?post_type=orders&p=($1-1122000)

.htaccess文件中沒有成功。

有沒有另一種方法可以實現基於 post_id 的 7 位序列號?

正則表達式不允許你做數學。 RewriteRule也不允許你做數學。

您應該考慮修改數據庫中的數據。 您可以將該數字添加到數據庫中的帖子 ID,同時注意不要破壞外鍵約束(這意味着,您可以使用on update cascade選項配置顯式外鍵,或者手動更新包含對帖子 ID。

另一種選擇是為 wordpress 編寫一個路由插件,這將允許您強制執行您喜歡的任何重寫規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM