会社では記事を執筆する人と、それをチェックして公開だけ行う管理職に分けて WordPress を運用する場合があります。このとき、公開権限のない投稿者や寄稿者が内容を作成し、レビューアーに渡すためにステータスを「レビュー待ち」として保存すると、スラッグ名が消えてしまいます。
スラッグ名が空の場合は、デフォルトではタイトルを引っ張ってくるので、タイトルが日本語の場合は困ってしまいます。
この現象に悩まされてたんですが、Wordpress の仕様であることがわかりました。
WordPress 3.5.1 でも仕様は変更されていないようです。推奨されないですが、運用上困るのでシステム ファイルを書き換えて対応しました。
wp-includes/post.php 内の wp_insert_post() 関数にある以下の行をコメントアウトすることで解消できます。ただし、システム ファイルを操作することになるので、Wordpress のバージョンアップごとにコードの修正が必要です。
// Don't allow contributors to set the post slug for pending review posts if ( 'pending' == $post_status && !current_user_can( 'publish_posts' ) ) $post_name = '';