组织自定义分类和自定义帖子类型

时间:2016-12-13 作者:Joe Fawley

我真的很难组织一个容纳大量内容的网站。这个例子被简化了,但包含了问题的症结所在。

该网站以几个俱乐部为特色。

游戏俱乐部、杂耍俱乐部、舞蹈俱乐部等

我为新闻和事件创建了一个名为俱乐部和自定义帖子类型的自定义分类法。我的想法是,当有人创建一个活动时,他们会使用分类法将其归属于自己的俱乐部。

理想情况下,我想要一个url结构,比如www.mysite。com/juggling club/(它将使用分类模板来显示一些内容)。然后www.mysite。com/juggling club/events(列出俱乐部正在举办的所有活动)。

WordPress似乎需要URL(www.mysite.com/club/juggling club)中的分类法,我可能会接受,但我真的很难根据分类法灵活地显示不同的自定义帖子类型,以及如何组织模板。

www.mysite。com/俱乐部/杂耍俱乐部/?post\\u type=events确实会过滤我的内容,但检查代码时,它似乎只是调用事件post type归档模板,并且很难将分类法作为目标。

我是否错过了一个更简单的选择?

我需要重新编写很多规则吗?如果我这样做了,我将如何让WordPress找到我的模板来定制特定部分的外观?

提前感谢您的任何见解!!谨致问候。

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

我一直在努力,已经找到了一个我满意的解决方案。我希望它在WordPress级别上有意义!

我已经决定在URL中保留分类术语,我希望尽可能少地干扰默认WordPress行为,并且URL仍然可以读取。(例如:www.mysite.com/club/juggling club)

我已使用重写规则来解析我的post\\u类型查询变量(例如:www.mysite.com/club/juggling club/?post\\u类型=事件变为www.mysite.com/club/juggling club/events,以仅列出杂耍俱乐部的事件)

function mytest_rewrite_rule() {
    add_rewrite_rule(
        \'club/([\\-\\w+]*)/([\\w+]*)/?$\', 
        \'index.php?club=$matches[1]&post_type=$matches[2]\',
        \'top\'
    );
}
add_action(\'init\', \'mytest_rewrite_rule\', 10, 0);
为了延续这种结构,我希望我的自定义帖子有一个url www.mysite。com/俱乐部/杂耍俱乐部/活动/赞助杂耍
。在以下人员的帮助下this post 我在cpt的重写slug(club/%club%/事件)中创建了一个自定义术语,它支持我的url模式。WordPress需要一些代码来处理这个问题:

function mytest_cpt_rewrite( $link, $post ) {
if ( $post->post_type === \'events\' ) {
    if ( $terms = get_the_terms( $post->ID, \'club\' ) )
            $link = str_replace( \'%club%\', current( $terms )->slug, $link );
        }
    return $link;
}
add_filter( \'post_type_link\', \'mytest_cpt_rewrite\', 10, 2 );
总之,我得出了一个逻辑结构:

www.mysite。com/club/juggling club将是一个通用的俱乐部登录页www.mysite。com/club/juggling club/events-显示所有自定义帖子类型
www.mysite。com/俱乐部/杂耍俱乐部/活动/赞助杂耍-显示特定帖子

我正在考虑在发布时选择俱乐部,因为内容总是需要属于俱乐部,这应该保护我创建的URL模式。

我将了解模板的使用情况,我还计划将分类术语作为主体css类注入,以帮助对某些元素进行有针对性的样式设计。

欢迎任何进一步的意见和想法!我希望这有助于组织内容。

SO网友:Pim

在我看来,你的游戏俱乐部、杂耍俱乐部等。。。基本上是用户。你说他们需要能够创建自己的帖子、活动等。。。

所以你也可以这样做。这取决于他们是否是每个俱乐部的实际用户,或者是否有人发布所有内容。在第二种情况下,我可能会按照您的建议使用分类法。

相关推荐

I receive taxonomy id

您好,我想从字段中获取值,但我收到的id代码如下:function add_product_column( $columns ) { //add column $columns[\'new_column\'] = __( \'New column\', \'woocommerce\' ); return $columns; } add_filter( \'manage_edit-product_columns\', \'add_pr