重要修订
我将这篇文章留在这里,因为其他人一定会想到这一点,并偶然发现它!正如下面的评论所指出的,这将获取当前年份,并且在永久链接刷新时会更改所有URL。这当然不是我想要的!这就是为什么下面的方法不是一个好主意。谢谢米洛的提醒。我甚至没有想到这一点。
我找到了一种非常简单的方法,我有点担心这肯定是非常错误的,否则就不会被这么多人忽视。我知道这是一篇老帖子,但我今天在寻找这个问题的答案时找到了它。
同样,我也制作了自己的帖子类型。
在我的post类型的参数(在本例中为events)中,我使用了可用于自定义post类型的重写。在自定义post类型之前,我添加了一个年度变量。
$year = date("Y");
$events_labels = array(
\'name\' => _x( \'Events\', \'Post Type General Name\', \'reaction\' ),
\'singular_name\' => _x( \'Event\', \'Post Type Singular Name\', \'reaction\' ),
\'menu_name\' => __( \'Events\', \'reaction\' ),
\'name_admin_bar\' => __( \'Events\', \'reaction\' ),
\'parent_item_colon\' => __( \'Parent:\', \'reaction\' ),
\'all_items\' => __( \'All Events\', \'reaction\' ),
\'add_new_item\' => __( \'Add New Event\', \'reaction\' ),
\'add_new\' => __( \'Add New\', \'reaction\' ),
\'new_item\' => __( \'New\', \'reaction\' ),
\'edit_item\' => __( \'Edit\', \'reaction\' ),
\'update_item\' => __( \'Update\', \'reaction\' ),
\'view_item\' => __( \'View\', \'reaction\' ),
\'search_items\' => __( \'Search Events\', \'reaction\' ),
\'not_found\' => __( \'No Events found\', \'reaction\' ),
\'not_found_in_trash\' => __( \'No Events found in Trash\', \'reaction\' ),
);
$events_args = array(
\'label\' => __( \'events\', \'reaction\' ),
\'description\' => __( \'YHQ Events\', \'reaction\' ),
\'labels\' => $events_labels,
\'supports\' => array( \'title\', \'editor\', \'author\', \'thumbnail\', \'revisions\', ),
\'hierarchical\' => false,
\'public\' => true,
\'show_ui\' => true,
\'show_in_menu\' => true,
\'menu_position\' => 5,
\'menu_icon\' => \'dashicons-calendar\',
\'show_in_admin_bar\' => true,
\'show_in_nav_menus\' => true,
\'can_export\' => true,
\'has_archive\' => false,
\'exclude_from_search\' => false,
\'publicly_queryable\' => true,
\'rewrite\' => array( \'slug\' => \'events/item/\' . $year . \'\'),
\'capability_type\' => \'page\',
);
你可以看到我的slug重写数组包括一个额外的/项/路径(不需要,只是因为我需要为我们的目的做更多的自定义,它可以帮助其他人),然后是我的年度变量。
这太简单了,我在等另一只鞋掉下来!如果有人知道为什么这是个糟糕的主意,请告诉我。