我發現這個tutorial創建所謂的假頁面,所以我可以動態創建帶有自定義字段的頁面。它工作得很好,但我需要調整它以適應我的需求。使用「假頁面」創建子頁面的子頁面
一樣,如果例如一本書有不同來源的評論:
mysite.com/books/to-kill-mockingbird/reviews/id-for-review
這意味着to-kill-mockingbird
是支柱式的書,蛞蝓id-for-review
是蛞蝓帖子類型評論。我可以很容易地通過刪除books/to-kill-mockingbird
,並只有mysite.com/reviews/id-for-review
,但我更喜歡有完整的網址。
有什麼建議嗎?
我試圖創建一個新的重寫規則,將id-for-review
放入查詢變量。我已經爲此添加了$review-id
。
這裏是我試圖讓
if ($slug == 'reviews') {
$newrules['books/([^/]+)/' . $slug . '/([^/]+)/?'] = 'index.php?book=$matches[1]&fpage=' . $slug . '&review-id=$matches[2]';
$newrules['books/([^/]+)/' . $slug . '/?$'] = 'index.php?book=$matches[1]&fpage=' . $slug;
}
else
{
$newrules['books/([^/]+)/' . $slug . '/?$'] = 'index.php?book=$matches[1]&fpage=' . $slug;
}
我有一個模板命名爲單book.php中的規則,其中正在使用正確的模板:
$current_fp = get_query_var('fpage');
$review-id = get_query_var('review-id');
if (!$current_fp) {
get_template_part('single', 'book-index');
} else if ($current_fp == 'books') {
if (!$review-id) {
get_template_part('single', 'book-reviews');
}
else
{
get_template_part('single', 'book-review');
}
};
如果我現在去/書籍/ to-kill-mockingbird/reviews /,它使用該模板列出所有評論。但是當我去審查時,它似乎使用標準的WordPress模板。
這裏是我的.htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
到目前爲止你做了什麼? – Ben
@Ben我已經嘗試了很多東西,我認爲在問題中寫出它們會更容易,也更容易混淆。我試圖改變規則,但據我所知,它應該按照現在的方式工作。我試圖在模板中進行更改,但如果我在**/reviews/**之後有某個內容,則會出現「頁面未找到」錯誤,因此模板未被使用。 – janlindso
那麼你可以告訴我們你的'.htaccess'嗎? – Ben