无法实现这种结构(自定义帖子与类别对比??)

时间:2013-05-31 作者:gluon

我有点失望,因为我不知道如何做我需要的事情(我和WP一起工作了很长时间……)

基本上,我需要展示我的艺术作品。每一个作品都是一篇帖子,或者一个页面,或者一个自定义类型(我仍然不知道哪个最适合),我有三类作品,我不会再有更多了。

我的网站上有一个博客,定制的永久链接是:

/博客/%年%/%月%/%日%/%帖名%/

因此,我想它已经消除了帖子类型的假设(我不希望url像:

julienbayle.net/blog ....

我想要这个:

julienbayle.net/works 将我的所有作品显示为公文包页面,只有缩略图作为网格/表格和分页。

julienbayle.net/works/creation 仅在类别创建中显示为缩略图网格

julienbayle.net/works/lab 显示仅在类别实验室中用作缩略图网格

julienbayle.net/works/collab 仅在类别collab中显示为缩略图网格

单击缩略图时,可以看到所考虑的工作,例如:

julienbayle.net/works/collab/work1

julienbayle.net/works/collab/work2

我尝试使用名为“works”的自定义类型,但在分页方面遇到了一些问题。因此,我尝试使用基本类别层次结构和页面:

works

-- creation

-- lab

-- collab

但是我不能有好的永久链接+每个作品的链接都是错误的(包含博客帖子的结构)

有人来帮我吗?提前致谢:)

2 个回复
最合适的回答,由SO网友:Milo 整理而成

这对于自定义帖子类型和自定义分类法来说相当简单。

第一register a custom taxonomy worktype, 将“重写”参数设置为works:

\'rewrite\' => array( \'slug\' => \'works\' )
接下来,register a custom post type 将“重写”设置为works/%worktype%:

\'rewrite\' => array( \'slug\' => \'works/%worktype%\' )
您还需要设置with_front 如果你的帖子有一个静态前缀,比如blog.

接下来,将过滤器添加到post_type_link 交换%worktype% 每当WordPress输出到单个作品的链接时,为单个作品帖子标记您选择的工作类型:

function wpa_works_post_link( $post_link, $id = 0 ){
    $post = get_post($id);  
    if ( is_object( $post ) && $post->post_type == \'works\' ){
        $terms = wp_get_object_terms( $post->ID, \'worktype\' );
        if( $terms ){
            return str_replace ( \'%worktype%\' , $terms[0]->slug , $post_link );
        }
    }
    return $post_link;
}
add_filter( \'post_type_link\', \'wpa_works_post_link\', 1, 3 );

SO网友:kruti

更改永久链接并设置为

    %postname%/
它可以像更改站点url/类别名称/postname一样更改您的url

结束

相关推荐

Categories sorting

我正在使用下面的代码来弹出自定义帖子类型及其类别,所以类别1---岗位1---岗位2第二类——岗位1——岗位2——岗位3等。这对我来说很好,但是我希望能够按count对我的类别进行排序,所以orderby=count,这样,在我下面的代码中不起作用的时候,具有大量帖子的类别将排在列表的顶部,知道为什么吗?非常感谢您的帮助 <?php // List posts by the terms for a custom taxonomy of any post type