带有自定义 slug 的 wordpress 自定义帖子类型并获取变量

Posted

技术标签:

【中文标题】带有自定义 slug 的 wordpress 自定义帖子类型并获取变量【英文标题】:wordpress custom post type with custom slug and get variables 【发布时间】:2014-02-03 15:58:36 【问题描述】:

我用这种方式在 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有一个像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 的“样式”。

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

提前致谢!

【问题讨论】:

【参考方案1】:

现在我不能 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 个月前我遇到了类似的问题,我添加了这个,似乎解决了我的问题。

【讨论】:

感谢您的回答。您是否认为通过添加该行我会访问像 mysite.com/fellow/ 这样的存档页面?不幸的是它不起作用...... 您有权访问您的 htaccess 文件吗?那里可能有一些偏远的东西会导致你的问题。据我所知,您的原始代码无需解决即可工作。 再试一次上面的代码,我已经把它改回原来的代码,在你的重写数组中添加了“'with_front' => false”。再说一次,我不能说它会解决你的问题,但值得一试,wp 论坛上的其他用户已经成功了,有些人没有【参考方案2】:

这是 WordPress 的一个问题,只要你有 'slug' => 'my-slug' 参数,它就可以工作,但你必须先改变你的永久链接结构。通过 WorkPress>Settings>Permalinks 将您的永久链接更改为随机的不同结构,然后返回到以前的结构。

这应该可以解决问题。

【讨论】:

以上是关于带有自定义 slug 的 wordpress 自定义帖子类型并获取变量的主要内容,如果未能解决你的问题,请参考以下文章

没有自定义帖子类型 slug 的 WordPress slug

替换 Wordpress 中的自定义内容类型 slug

用于自定义帖子类型的 Wordpress 多个 slug

Wordpress - 如何通过 slug 获取自定义帖子类型?

将分数添加到 wordpress 自定义帖子类型 slug

WordPress:在自定义帖子类型中获取模块名称的帖子 slug