2010-05-26 104 views
0

我有以下的代码来构建一个自定义分类为我的投资组合:WordPress的自定义分类

add_action('init', 'create_pc_db_taxonomies', 0); 

function create_pc_db_taxonomies() { 
    register_taxonomy('type', 'post', array('hierarchical' => true, 'label' => 'Type', 'query_var' => true, 'rewrite' => array('slug' => 'type'))); 
} 

我建立了我的网站的投资组合类(我删除了/分类/基地),并创造了一些项目并为他们设置自定义分类。所以我得到以下设置: http://domain.com/portfolio/item1/但我想要的分类链接看起来像这样:http://domain.com/portfolio/type/web然后这将显示与该类型相关的投资组合项目的列表。目前他们像http://domain.com/type/web这些创建404的,但我也尝试添加'组合/类型'作为分类slu but,但它也只是创建一个404,但我很确定这是做错的方式无论如何。任何帮助?

感谢

编辑:该网站是在这里:http://driz.co.uk/的全部工作就是在一个名为组合类别,每个PIC下的标题和自定义分类(如果你点击它们,你将获得404)

回答

0

确保所有插件都被禁用(至少对重写有所调整),并删除wp_options表中的选项rewrite_rules

现在删除您的主题中的所有挂钩定制税和帖子类型的挂钩,然后在init上运行;

register_taxonomy(
    'type', 
    'post', 
    array(
     'hierarchical' => true, 
     'label' => 'Type', 
     'rewrite' => array('slug' => 'portfolio/type') 
    ) 
); 

在您的永久链接设置,选择默认的选项之一,并确保两者的分类和标签的基础设置,然后更新。

转储$wp_rewrite和以前一样,你应该看到这样的几行;

[portfolio/type/([^/]+)/page/?([0-9]{1,})/?$] => index.php?type=$matches[1]&paged=$matches[2] 
[portfolio/type/([^/]+)/?$] => index.php?type=$matches[1] 

这些应该靠近数组的最开始处,标记,类别之前。

让我知道你如何继续!

(当我在WP 3.0-beta-2安装中运行代码时,它可以工作,所以我现在假设有一些奇怪的事情发生)。

+0

我没有从数据库转储任何东西,但交换了注册码,我所有旧的分类标准都消失了,这意味着WP认为这是不同的不知道为什么?但网址现在可以运作。代码中发生了什么变化? – Cameron 2010-05-26 21:43:39

+0

你是否介意将你的functions.php文件(或者至少是修改之前的相关代码)压缩下载?这样我们可以更好地了解发生了什么,但是没有你在这里发布大量代码! – TheDeadMedic 2010-05-26 21:57:52

+0

似乎WP很困惑,因为我已经命名为标签,并认为它是内置标签。很奇怪。似乎除了http://driz.co.uk/portfolio/category/development/page/2的分页外,还有什么想法?谢谢 – Cameron 2010-05-27 07:54:04

0

我确定你可以使用portfolio/type来伪造一个slu - ,关键在于,一旦你更新了你的代码,你需要刷新的重写规则。

只需在管理员中重新保存您的固定链接设置即可。

+0

试过,但我仍然得到404该网站是在这里http://driz.co.uk/尝试点击每个投资组合项目标题下的小链接。 – Cameron 2010-05-26 18:48:28

+0

你可以在主题文件的某处运行这段代码,并让我知道你得到了什么?只需发布相关内容即可。 '

rules); ?>
' – TheDeadMedic 2010-05-26 18:58:15

+0

哦,刚才注意到,试着从参数数组中取出'query_var'键(再次刷新规则)。 – TheDeadMedic 2010-05-26 19:02:03

相关问题