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。
我想更改创建 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。