我已经为使用假页面的WordPress网站以及更多类型(用于自定义帖子类型),高级自定义字段以及更多分类法等插件创建了一个系统。该网站有乐队和发布的帖子类型。Custom custom permalink for custom post type
在前端一切都很好,如果用户想读一个乐队,他点击菜单,并在/band/[bandname]
结束。如果他想读一篇关于释放他最终在/band/[bandname]/releases/[releasename]
。
正如我所说的,在前端一切正常。但是当我在后端创建一个发行版时,我很难将/band/[bandname]
部分添加到帖子类型发布的永久链接。我尝试使用/band/%band%/releases/
,但%band%将按照字面意思编写,因为它不知道从哪里获取乐队名称。有任何想法吗?
我试过使用这段代码。 Band
是发布提交表单中的发布对象输入。
add_filter('post_type_link', 'custom_permalinks', 10, 3);
function custom_permalinks($permalink, $post, $leavename)
{
$post_id = get_post_meta($_POST['band'], 'bands', true);
if($post->post_type != 'utgivelse' || empty($permalink) || in_array($post->post_status, array('draft', 'pending', 'auto-draft')))
return $permalink;
$var1 = get_post_meta($post_id, 'bands', true);
$var1 = sanitize_title($var1);
$permalink = str_replace('%band%', $var1, $permalink);
return $permalink;
}
相当接近我做了什么。但是,当我获得更多的子类别时,当我尝试在编辑器中链接到它们时,会有点麻烦。他们的风格不了解固定链接。所以当我链接到发行版时,它不知道乐队名称。 – janlindso
对每个页面加载冲洗规则是一个坏主意。 –
这就是我评论它的原因。该过滤器只应在添加新规则时运行。 – Alberto