Single-{post_type}.php不工作

时间:2017-02-06 作者:FullStack Alex

我注册了一个名为“事件”的新帖子类型。这种类型的帖子确实会显示在循环中,但我无法访问单个事件。当我点击“事件”帖子时。此外,我无法访问此帖子类型的类别。

你在网上读到的唯一建议——刷新重写规则——对我没有用。

还有其他建议吗?

这是我对这类帖子的注册码:

add_action (\'init\', \'register_events_posttype\');
function register_events_posttype(){
   $labels = array();

    $args = array(
        \'label\' => \'Events\',
        \'labels\' => $labels,
        \'show_in_menu\' => true,
        \'show_ui\' => true,
        \'show_in_nav_menus\' => true,
        \'show_in_rest\' => true,
        \'menu_position\' => 2,
        \'menu_icon\' => \'dashicons-calendar-alt\',
        \'supports\' => array(\'title\',\'editor\',\'thumbnail\', \'excerpt\', \'custom-fields\', \'comments\',\'revisions\', \'archives\',),
        \'taxonomies\' => array(\'category\', \'post_tag\'),
        \'rewrite\' => array(\'slug\' => \'events\',\'with_front\' => false)
    );
    register_post_type(\'event\', $args);
}

3 个回复
最合适的回答,由SO网友:FullStack Alex 整理而成

嗯。在花了几个小时进行研究并尝试了一些建议的解决方案后,我发现我只需要将此参数添加到参数数组中,然后才能刷新永久链接(=切换到默认永久链接结构并返回到仪表板设置中的自定义帖子名称结构):

\'public\' => true,
\'has_archive\' => true,
它与register\\u post\\u类型中的单数参数(“event”)无关。我将其改回原来的状态(单数“事件”),因为我喜欢将其作为数据库请求的单数。数据库内帖子的帖子类型名称也是单数(“post”)。

但对于WP REST API路由,我将REST\\u base设置为复数:

\'rest_base\' => \'events\',

SO网友:rudtek

根据您的代码,您的cpt是“事件”。您需要将php更改为单事件。php或更改此行:

register_post_type(\'event\', $args);

register_post_type(\'events\', $args); 
通常它们是复数形式,因此第二个选项是更好的选择。尽管如此,我始终建议添加名称空间以避免冲突。尤其是在这种情况下,因为许多人都有活动CPT。

尝试“shc活动”或类似的活动,使其成为您自己的活动。

SO网友:Pat J

您已注册帖子类型event, 不events. 所以你应该能够使用single-event.php. (或者,将最后一行更改为register_post_type( \'events\', $args );.

文档:register_post_type()