如果你没有分享一个帖子标题和它的结果,我只能猜测发生了什么。但很多时候stop words, 或极为常见的单词,都是从鼻涕虫中剥离出来的。这应该是这样的话the
, a
, an
, 等。如果你也在运行Yoast SEO插件,它会做到这一点。
你可以用save_post
尽管如此。
function my_custom_slug( $post_id ) {
if ( ! wp_post_revision( $post_id ) ) {
// Temporarily Unhook to Prevent Infinite Loop
remove_action( \'save_post\', \'my_custom_slug\' );
// Set the new Post Slug
$my_slug = sanitize_title( get_the_post_title( $post_id ) );
// Update the Slug
wp_update_post( array(
\'ID\' => $post_id,
\'post_name\' => $my_slug,
) );
// Rehook
add_action( \'save_post\', \'my_custom_slug\' );
}
}
add_action( \'save_post\', \'my_custom_slug\' );
因此,这段代码将要做的是,保存帖子时,使用post\\u标题(例如。
This is the title of my post
), 通过删除HTML/PHP代码和特殊字符,使其全部为小写字母,并将所有空白转换为
-
, 将其存储为
$my_slug
. 以我的例子来说,标题应该是
this-is-the-title-of-my-post
. 然后它将更新
post_name
, 其中包含值为
$my_slug
.
注意:如果您使用自定义的post类型执行此操作,则过程会略有不同,需要进行一些更改和附加代码才能正常工作。