希望下面的代码可能会有所帮助
add_filter( \'wp_unique_post_slug\', \'mg_unique_post_slug\', 10, 6 );
/**
* Allow numeric slug
*
* @param string $slug The slug returned by wp_unique_post_slug().
* @param int $post_ID The post ID that the slug belongs to.
* @param string $post_status The status of post that the slug belongs to.
* @param string $post_type The post_type of the post.
* @param int $post_parent Post parent ID.
* @param string $original_slug The requested slug, may or may not be unique.
*/
function mg_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) {
global $wpdb;
// don\'t change non-numeric values
if ( ! is_numeric( $original_slug ) || $slug === $original_slug ) {
return $slug;
}
// Was there any conflict or was a suffix added due to the preg_match() call in wp_unique_post_slug() ?
$post_name_check = $wpdb->get_var( $wpdb->prepare(
"SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type IN ( %s, \'attachment\' ) AND ID != %d AND post_parent = %d LIMIT 1",
$original_slug, $post_type, $post_ID, $post_parent
) );
// There really is a conflict due to an existing page so keep the modified slug
if ( $post_name_check ) {
return $slug;
}
// Return our numeric slug
return $original_slug;
}
代码取自
http://magnigenie.com/how-to-achieve-numeric-urls-in-wordpress/