watayanさん、こんにちは。
ユーザーに公開権限がなく、ステータスがレビュー待ちの場合にスラッグが削除されるのは、現状のWordPressの仕様ということになります。
この処理はwp-includes/post.phpのwp_insert_post関数内、1434行から1436行(Ver2.8.4)にかけての記述でなされています。
1434 // Don't allow contributors to set to set the post slug for pending review posts
1435 if ( 'pending' == $post_status && !current_user_can( 'publish_posts' ) )
1436 $post_name = '';
jim912さん,調べていただいてありがとうございます。まさに私がやろうとしていたことがピンポイントで封じられています…わざわざこういうコードが書いてあるということは,まさに仕様だということなのですね。
私が考えていたのは,職場サイトで公開権限を管理職に割り振るのだけど,彼らは公開のボタンを押すことはできてもスラッグにまで気をつけてはくれないだろうからどうしよう…ということでした。もちろん一方で,URLの命名権を持つのは公開決定者であるべきだという思想も理解できます。教えていただいた部分を変更するかどうかは追々考えます。ありがとうございました。