Hook on slug generator

时间:2017-11-09 作者:Fredy31

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

enter image description here

我想在前面添加一个meta,制作一个类似于[meta]-test-slug-2的东西

我想当WP自动创建一个slug时会有一个钩子,如果我能找到它,我可以在创建slug时在标题之前插入那个meta。

那么,是否存在一个挂钩?如果是,我如何使用它?

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

我认为您应该能够使用wp_unique_post_slug 过滤器(应用于function of the same name):

add_filter("wp_unique_post_slug", function($slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug) {
    if($meta = get_post_meta($post_ID, "my-meta", true)) {
        $slug = $meta . \'-\' . $slug;
    }
    return $slug;
}, 10, 6);
由于这是在该函数的末尾应用的,我相信WP期望并依赖于该slug是唯一的,因此您必须确保它是唯一的。我相信它会随着帖子的发布而生成(并保存),所以你必须在那时准备好你的元值。

结束