Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将WordPress上的post permalink结构更改为使用自定义分类法_Wordpress_Url_Rewrite_Taxonomy_Permalinks - Fatal编程技术网

将WordPress上的post permalink结构更改为使用自定义分类法

将WordPress上的post permalink结构更改为使用自定义分类法,wordpress,url,rewrite,taxonomy,permalinks,Wordpress,Url,Rewrite,Taxonomy,Permalinks,我想更改WordPress 3.0-beta1上的post permalink模式,以使用新的自定义分类法 今天我可以使用/%category%/%postname%/和/my category/my post/URL,这很好,但我需要使用另一个分类法,而不是category one 我尝试使用/%acervo%/%postname%/但我的URL在URL上带有%acervo%,而不是我的分类名称所在的Acevo的名称 我发现了一些与相关但没有成功的东西…您可以尝试使用WordPress插件,然

我想更改WordPress 3.0-beta1上的post permalink模式,以使用新的自定义分类法

今天我可以使用/%category%/%postname%/和/my category/my post/URL,这很好,但我需要使用另一个分类法,而不是category one

我尝试使用/%acervo%/%postname%/但我的URL在URL上带有%acervo%,而不是我的分类名称所在的Acevo的名称


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

您可以尝试使用WordPress插件,然后使用postname通配符硬编码分类法,如下所示:

/acervo/%postname%/

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

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

我明白了。。。将permalink结构更改为/%acervos%/%postname%/,然后跳入WP_Rewrite,并添加了一个新的替换标记,将%acervos%替换为。*regexp。

这应该是技巧所在


我不想硬编码任何东西。。。帖子属于一个或多个acervo my分类法,我想使用wordpress函数、钩子或过滤器在帖子永久链接中插入此值,如果需要的话,可以使用_permalink函数。我听到了。我对WP3.0的研究还不够深入,不知道是否可以做到这一点,我很确定他们的文档在这一点上是缺乏的。最好的办法是查看处理permalinks设置的源代码,看看是否有任何更改/添加。正如我在问题中所说,我不想使用类别分类法。。。我需要在URL中使用acervo分类法。。。分类页面和分类库与此无关。这次我遇到了与插件生成的毒理学相同的问题。那么,使用管理面板中的permalinks设置就没有办法拥有/%taxonomy term%/%postname%/url了?不管怎样,我还是要去编码?
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;
}