在WP中创建帖子时,如果没有快速指定标题,WP会根据帖子ID在autosave上生成默认slug。然后,当稍后添加标题时,除非通过编辑修改slug,否则slug保持不变(基于帖子ID)
我想做的是在post publish上添加一个操作,该操作根据帖子标题生成并保存帖子slug。
在WP中创建帖子时,如果没有快速指定标题,WP会根据帖子ID在autosave上生成默认slug。然后,当稍后添加标题时,除非通过编辑修改slug,否则slug保持不变(基于帖子ID)
我想做的是在post publish上添加一个操作,该操作根据帖子标题生成并保存帖子slug。
只要没有接触过slug,WordPress就会在您输入标题后生成一个新的。
add_filter( \'wp_insert_post_data\', \'prevent_numeric_slugs\', 10, 1 );
function prevent_numeric_slugs( $post_data )
{
if ( ! isset ( $post_data[\'post_title\'] )
or ! is_numeric( $post_data[\'post_name\'] )
)
{ // exit early
return $post_data;
}
// post_name is the slug
$post_data[\'post_name\'] = sanitize_title( $post_data[\'post_title\'] );
return $post_data;
}
我偶然发现this question 在写这个问题的时候。我有一个问题是关于这个问题的。我发现你用的是get_delete_post_link 筛选为我的操作创建一个新的url(或一个类似的函数——在任何情况下,我都会将该函数与布尔值一起使用)。唯一的问题是,I don\'t know how to capture the event now. 考虑到我在谷歌上找不到很多关于行后操作的例子,我将不胜感激-/public function _wp_filter_get_delete_post_link( $