2
我想使用類似:如何在WordPress永久鏈接中使用類別ID?
http://example.com/%category_id%/%postname%/
的固定鏈接結構。
例如,如果一個職位有3個ID的類別,然後在文章的網址會
http://example.com/3/post-name/
有誰知道如何可以做到這一點?我不介意修改WordPress核心。
我想使用類似:如何在WordPress永久鏈接中使用類別ID?
http://example.com/%category_id%/%postname%/
的固定鏈接結構。
例如,如果一個職位有3個ID的類別,然後在文章的網址會
http://example.com/3/post-name/
有誰知道如何可以做到這一點?我不介意修改WordPress核心。
此代碼添加%category_id%
重寫標記,並過濾後期固定鏈接以將其替換爲實際類別標識(如果存在多個類別,則爲最低標識)。你可以把它放在一個插件或你的主題文件中。
add_action('init', 'so6159452_init');
function so6159452_init()
{
add_rewrite_tag('%category_id%', '([0-9]+)');
}
add_filter('post_link', 'so6159452_post_link', 10, 2);
function so6159452_post_link($permalink, $post)
{
if (false !== strpos($permalink, '%category_id%')) {
$cats = get_the_category($post->ID);
if ($cats) {
usort($cats, '_usort_terms_by_ID'); // order by ID
$category_id = $cats[0]->cat_ID;
} else {
// Error: no category assigned to this post
// Just use a dummy variable
$category_id = '0';
}
$permalink = str_replace('%category_id%', $category_id, $permalink);
}
return $permalink;
}
您通常不想修改核心;它會在每次更新時斷開(這意味着所有的時間,現在WP 3.7已經停止)。像Jan Fabry在下面描述的那樣使用過濾器。 – 2013-10-29 05:48:07