基于分类学的多邮政类型档案馆的永久链接结构

时间:2012-05-27 作者:Alex2452

最近,我一直在从事一个高级WordPress项目,我一直在为自定义帖子类型更改永久链接结构。

我已经创建了3种帖子类型,比如说:type1、type2、type3,以及为所有这些类型注册的分类法测试。我在自定义分类法中有3个术语,分别是cat1、cat2、cat3

以下是我想要实现的目标:

而不是通过cat访问所有帖子

站点URL/测试/cat1

我想通过分类法访问每个帖子类型的存档,如:

siteurl/type1/cat1

2 个回复
SO网友:Parham

以下是我的一个项目中的部分代码,用于为permalinks设置类似的结构(post类型和分类法存档的基段代码相同),请注意post类型和分类法的“has\\u archive”和“rewrite”参数的值:

add_action( \'init\', \'register_my_post_types\' );
function register_my_post_types() {

  register_post_type( \'movie\',
    array(
        ....

        \'has_archive\' => \'movies\',
        \'rewrite\' => array(
            \'slug\' => \'movies/%mv_category%\',
            \'with_front\' => false
        ),
        \'taxonomies\' => array(
            \'mv_category\',
        ),
    )
  );

  register_taxonomy(
    \'mv_category\',
    array(
        \'movie\'
    ),
    array(
        ...
        \'hierarchical\' => true,
        \'rewrite\' => array(
            \'slug\' => \'movies\',
            \'with_front\' => false,
            \'hierarchical\' => false
        )
    )
  );
) // end of create_my_post_types function


add_filter(\'post_type_link\', \'filter_post_type_link\', 10, 2);
function filter_post_type_link($link, $post)
{
    if ($post->post_type != \'movie\')
        return $link;

    if ($cats = get_the_terms($post->ID, \'mv_category\'))
        $link = str_replace(\'%mv_category%\', array_pop($cats)->slug, $link);

    return $link;
}
然后,您可以使用以下url访问电影帖子类型的“纪录片”类别:

site.com/movies/documentary/
“纪录片”类别的“电影A”将是:

site.com/movies/documentary/movie-a/
注意:在post类型之后注册分类很重要,因为顺序permalink重写规则是在WordPress中生成的。

SO网友:mltsy

如果没有更具体的术语来帮助我理解您实际想要组织什么,我不确定我是否走上了正确的轨道,但是这个插件是否可以帮助您完成您想要做的事情?http://wordpress.org/extend/plugins/cpt-onomies/

它有点将自定义类型的帖子标题和分类法合并在一个奇怪的(可能有用?)方法

结束

相关推荐

Permalinks and page store

我把这个贴在stackoverflow上,他们说我可以在这里试试-我的网站上安装了wordpress。在那个网站的一个子文件夹下,我安装了oscommerce系统作为在线商务商店。我在wordpress上激活了permalinks,但现在每次我试图联系商店管理部门时,我都会得到wordpress中找不到的页面。如果我禁用永久链接,我可以再次访问,你能帮我吗?谢谢你,丹尼