wordpress自定义帖子类型与自定义slug和获取变量

时间:2014-01-15 09:06:29

标签: wordpress url archive custom-post-type slug

我已经用这种方式在wordpress中定义了一个自定义帖子类型:

add_action('init', 'register_cima_fellowship');

function register_cima_fellowship() {
    $args = array(
        'labels' => $labels,
        'public' => true,
        'menu_position'=>20,
        'show_ui'=>true,
        'show_in_menu'=>true,
        'show_in_nav_menus' => true,
        'rewrite' => array('slug' => 'fellow'),    
        'supports' => array('title', 'editor','thumbnail'),
        'has_archive'=>true
    );
    register_post_type('cima_fellowship', $args);
}

我在一个名为archive-cima_fellowship.php的文件中创建了一个自定义存档,它可以工作,显示我的所有cpt。

这个cpt有一个meta属性,比如status,将其中一些定义为当前和其他过去。我想有两个不同的存档页面,一个只显示当前和另一个只显示过去。

现在我以这种方式使用get变量mysite.com/cima_fellowship/?type=past

来转变它

但我希望像mysite.com/fellows/past这样有更清晰的网址。

为此,我在cpt的注册中定义了'rewrite' => array('slug' => 'fellow'),,但我无法通过`mysite.com/fellows访问存档页面,我仍然需要访问'mysite.com/cima_fellowship/',并且我无法找到如何“设置”URL的样式。

有什么建议吗?教程?引导?

提前致谢!

2 个答案:

答案 0 :(得分:2)

现在我不是100%确定这是否有效但尝试添加:

'has_archive' => 'fellow'

所以你会:

 function register_cima_fellowship() {
$args = array(
    'labels' => $labels,
    'public' => true,
    'menu_position'=>20,
    'show_ui'=>true,
    'show_in_menu'=>true,
    'show_in_nav_menus' => true,
    'has_archive'=>true,
    'rewrite' => array('slug' => 'fellow', 'with_front' => false),    
    'supports' => array('title', 'editor','thumbnail'),

);
register_post_type('cima_fellowship', $args);
}    

我在10个月之前遇到过类似的问题而且我添加了这个问题似乎解决了我的问题。

答案 1 :(得分:0)

这是WordPress的一个问题,只要你有'slug'=> 'my-slug'论证它会起作用,但你必须先改变你的永久链接结构。通过WorkPress>设置>永久链接将固定链接更改为随机的不同结构,然后再返回到上一个结构。

这应解决问题。