REGISTER_POST_TYPE()的重写段不起作用

时间:2021-02-10 作者:Theo

我正在创建一个供个人使用的主题,包括wp内容/mu插件/自定义类型。php,我设置

function artwork_post_types()
{
    register_post_type(\'artwork\', array(
        \'public\' => true,
        \'menu_icon\' => \'dashicons-art\',
        \'labels\' => array(
            \'name\' => \'Artwork\',
            \'add_new_item\' => \'Add New Artwork\',
            \'edit_item\' => \'Edit Artwork\',
            \'all_items\' => \'All Artwork\',
            \'singular_name\' => \'Artwork\',
            \'pages\' => true,
            \'rewrite\' => array(
                \'slug\' => \'art\',
                \'with_front\' => false,
            ))
    ));
 }

add_action(\'init\', \'artwork_post_types\');
之后,我点击设置->;永久链接->;保存更改以更新。然而,slug重写似乎并没有像我所希望的那样起作用。

permalink仍然反映为“艺术品”而不是“艺术”,即。http://domain/artwork/测试而不是http://domain/art/改为测试

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

问题是因为rewrite argumentlabels, 但是rewrite 实际上与labels, 所以只要移动rewrite 至之后labels 问题就会消失。:)

register_post_type(\'artwork\', array(
    \'public\'    => true,
    \'menu_icon\' => \'dashicons-art\',
    \'labels\'    => array(
        \'name\'          => \'Artwork\',
        \'add_new_item\'  => \'Add New Artwork\',
        \'edit_item\'     => \'Edit Artwork\',
        \'all_items\'     => \'All Artwork\',
        \'singular_name\' => \'Artwork\',
    ),
    // Move the "rewrite" to below:
    \'rewrite\'   => array(
        \'slug\'       => \'art\',
        \'with_front\' => false,
        \'pages\'      => true, // this also belongs in "rewrite" and not "labels"
    ),
));

相关推荐