0

我想更改我的 WordPress 3.0-beta1 上的帖子永久链接架构以使用我的新自定义分类法。

今天我可以使用URL /%category%/%postname%//my-category/my-post/这很好,但我需要使用另一种分类法而不是“类别”一个。

我尝试使用/%acervo%/%postname%/,但我的 URL 附带在 URL 上,而不是帖子所属%acervo%的“ Acevo ”(我的分类名称)的名称。

我发现了一些与WP_Rewrite相关但没有成功的东西......

4

4 回答 4

0

您可以尝试使用 WordPress 插件No Category Base,然后使用 postname 通配符对分类进行硬编码,如下所示:

/acervo/%postname%/

请注意,acervo 没有百分号,因为它是“硬编码”而不是通配符。

于 2010-05-12T19:35:10.017 回答
0

Dashboard/Settings/Permalinks 只需在无需删除类别库中更改您的类别库,然后再次添加即可。

于 2010-05-12T21:53:37.057 回答
0

我明白了...将永久链接结构更改为/%acervos%/%postname%/然后潜入 WP_Rewrite 并添加了一个新的“替换标签”替换%acervos%为正则(.*)表达式。

于 2010-05-16T16:38:22.377 回答
0

这应该是诀窍。

function acervo_permalink($permalink, $post_id, $leavename){
    if (get_option('permalink_structure') != ''){
        $post = get_post($post_id);
        $rewritecode = array(
            '%acervo%'
        );
        if (strpos($permalink, '%acervo%') !== FALSE){   
            $terms = wp_get_object_terms($post->ID, 'acervo');  
            if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $acervo = $terms[0]->slug;
            else $acervo = '';
        }
        $rewritereplace = array(
            $acervo
        );
        $permalink = str_replace($rewritecode, $rewritereplace, $permalink);
    } 
    return $permalink;
}
于 2010-10-05T22:42:28.007 回答