我在为WordPress中的自定义帖子类型定义重写规则时遇到一些问题。
注册自定义帖子类型时,我可以正常重写子弹
'rewrite' => array('slug' => 'events','with_front' => false),
这会将我的子弹重命名为事件。
如果添加带有占位符的重写,我将无法正常工作:
'rewrite' => array('slug' => 'events/%year%','with_front' => false),
我还尝试遵循以下其他示例: https://wordpress.stackexchange.com/questions/173440/custom-post-type-with-modified-permalink-structure-results-in-404
没有成功。
在WordPress后端中,我会看到一条saying %year%
,而不是实际年份。
我也在使用WordPress Rest API 也会在其中显示占位符,而不是实际年份:
我将如何实现以下目标 我想将自定义帖子类型的代码重写为:
events/2017/my-event-name
我认为这是指
events/%year%/%postname%
我还看到了我的其余API与后端中的slug预览之间的差异。
例如,我进行了一次测试重写:
function events_rewrite_rules(){
add_permastruct( 'events', 'events2/test/%postname%/%author%/%year%/%events%', array('with_front' => false));
}
这样会出现在后端
您可以看到%postname%
的设置正确(=投标)
而%year%
和%author%
一样被忽略。
如果我加载REST API,那么那里什么也看不到...
它只会在post type register函数中显示重写:
'rewrite' => array('slug' => 'events','with_front' => false),
如果有人能在这里帮助我,我将感到非常高兴。我想我不完全理解所有这些。
欢呼