我想通过在原来的slug前后添加文本来修改新帖子的slug。然后通过一个钩住save_posts
和transition_post_status
.
add_action( \'save_post\', array( $this, \'action_save_post\' ), 11 );
add_action( \'transition_post_status\', array( $this, \'action_transition_post_status\' ), 9, 3 );
我最初使用的方法如下所示
here 其中使用
save_post
, 然而,虽然这种方法确实正确地更改了网站上的post-slug,但旧的slug仍然通过API发送。
在上面链接的方法中,我尝试更改save_post
挂钩优先级为6
从…起10
, 然而,这仍然不起作用。
然后我尝试了一些全新的东西,这是:
function custom_permalink_slug( $original_slug, $slug, $post_id, $post_status, $post_type, $post_parent ) {
$support_post_type = array( \'deal\' );
if ( in_array( $post_type, $support_post_type ) ) {
$rand = \'\';
$rands = get_the_terms($post_id, \'rand\');
if (!empty($rands) && !is_wp_error($rands)) {
$rand = $rands[0]; // Only get first rand if there is more than one
$rand = sanitize_title( $rand->name );
}
if (empty( $rand ) || strpos( $original_slug, $rand ) !== false) {
return; // No subtitle or already in slug
}
$slug = $rand . \'-\' . $slug . \'-home\';
}
return $slug;
}
add_filter( \'pre_wp_unique_post_slug\', \'custom_permalink_slug\', 100, 6 );
这种方法似乎正确地更改了slug,因为它在后期编辑屏幕上显示了新的slug,但实际上它仍然使用旧的slug(可能是因为它不会更改
post_name
元字段)。
有没有办法让它正常工作?