我已經爲使用假頁面的WordPress網站以及更多類型(用於自定義帖子類型),高級自定義字段以及更多分類法等插件創建了一個系統。該網站有樂隊和發佈的帖子類型。Custom custom permalink for custom post type
在前端一切都很好,如果用戶想讀一個樂隊,他點擊菜單,並在/band/[bandname]
結束。如果他想讀一篇關於釋放他最終在/band/[bandname]/releases/[releasename]
。
正如我所說的,在前端一切正常。但是當我在後端創建一個發行版時,我很難將/band/[bandname]
部分添加到帖子類型發佈的永久鏈接。我嘗試使用/band/%band%/releases/
,但%band%將按照字面意思編寫,因爲它不知道從哪裏獲取樂隊名稱。有任何想法嗎?
我試過使用這段代碼。 Band
是發佈提交表單中的發佈對象輸入。
add_filter('post_type_link', 'custom_permalinks', 10, 3);
function custom_permalinks($permalink, $post, $leavename)
{
$post_id = get_post_meta($_POST['band'], 'bands', true);
if($post->post_type != 'utgivelse' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft')))
return $permalink;
$var1 = get_post_meta($post_id, 'bands', true);
$var1 = sanitize_title($var1);
$permalink = str_replace('%band%', $var1, $permalink);
return $permalink;
}
相當接近我做了什麼。但是,當我獲得更多的子類別時,當我嘗試在編輯器中鏈接到它們時,會有點麻煩。他們的風格不瞭解固定鏈接。所以當我鏈接到發行版時,它不知道樂隊名稱。 – janlindso
對每個頁面加載沖洗規則是一個壞主意。 –
這就是我評論它的原因。該過濾器只應在添加新規則時運行。 – Alberto