WordPress 如何连接到 slug 生成器

WordPress how to hook onto slug generator

我想更改创建 post 时自动生成的 slug。

我想在之前添加一个 meta,制作一个类似 [meta]-test-slug-2

的东西

我想当 WordPress 自动创建一个 slug 时有一个钩子,如果我能找到它,我可以在创建 slug 时在标题之前注入那个元数据。

那么有钩子存在吗?如果可以,我该如何使用它?

更改 $prefix 变量以满足您的需要:

add_filter( 'wp_unique_post_slug', 'prefix_wp_unique_post_slug', 2, 6 );
function prefix_wp_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) {
    if ( $post_type == 'post' ) {

        $prefix = 'meta-';
        if ( strripos($slug, $prefix) !== 0 ) {
            $slug = $prefix . $slug;
        }
    }
    return $slug;
}

查看此问题的答案 question

简而言之,过滤器 wp_unique_post_slug 将允许您修改 slug。

但它似乎在 post 的每次保存时都会被调用,所以我建议一些逻辑只在第一次保存时添加前缀,这样用户就可以随意编辑 slug。