Discuz X 註冊性別由 「列表」 變 「單選」 的設定方法,必選功能可以在後臺自行設定,後臺位置是:使用者-使用者欄目-性別,點選後邊的編輯,將其中的 「是否必填」 選 「是」 即可。

設定方法:
定位檔案

../source/function/function_profile.php
找到程式碼段
  1. elseif($fieldid=='gender') {
  2. if($field['unchangeable'] && $space[$fieldid] > 0) {
  3. return '<span>'.lang('space', 'gender_'.intval($space[$fieldid])).'</span>';
  4. }
  5. $selected = array($space[$fieldid]=>' selected="selected"');
  6. $html = '<select name="gender" id="gender" tabindex="1">';
  7. if($field['unchangeable']) {
  8. $html .= '<option value="">'.lang('space', 'gender').'</option>';
  9. } else {
  10. $html .= '<option value="0"'.($space[$fieldid]=='0' ? ' selected="selected"' : '').'>'.lang('space', 'gender_0').'</option>';
  11. }
  12. $html .= '<option value="1"'.($space[$fieldid]=='1' ? ' selected="selected"' : '').'>'.lang('space', 'gender_1').'</option>'
  13. .'<option value="2"'.($space[$fieldid]=='2' ? ' selected="selected"' : '').'>'.lang('space', 'gender_2').'</option>'
  14. .'</select>';

修改為

  1. elseif($fieldid=='gender') {
  2. if($field['unchangeable'] && $space[$fieldid] > 0) {
  3. return '<span>'.lang('space', 'gender_'.intval($space[$fieldid])).'</span>';
  4. }
  5. $selected = array($space[$fieldid]=>'checked="checked"');
  6. if($field['unchangeable']) {
  7. $html .= '<option value="">'.lang('space', 'gender').'</option>';
  8. }
  9. $html .= ''
  10. .'<label ><input type="radio" name="gender" id="gender" value="1" '.($space[$fieldid]=='1' ? 'checked="checked"' : '').'/>'.lang('space', 'gender_1').' '.'</label>'
  11. .'<label ><input type="radio" name="gender" id="gender" value="2" '.($space[$fieldid]=='2' ? 'checked="checked"' : '').'/>'.lang('space', 'gender_2').' '.'</label>'
  12. .'<label ><input type="radio" name="gender" id="gender" value="0" '.($space[$fieldid]=='0' ? 'checked="checked"' : '').'/>'.lang('space', 'gender_0').' '.'</label>';

 

其中,」value="0"這一行程式碼是 「保密」 選項,換到了第三行,可以自行調整位置。但是千萬注意末尾的分號 「;」一定不要忘記。
"gender_0"對應的顯示文字是 「保密」,可以修改為其他。
定位檔案
../source/language/lang_space.php
找到:
  1. 'gender_0' => '其它',
  2. 'gender_1' => '男',
  3. 'gender_2' => '女',
可以將對應的文字修改為自己想要的,比如帥哥、美女、人妖等。
還可以單獨額外增加更多的性別,只要稍微分析一下程式碼即可明白。
懷疑其中某幾行程式碼已經多餘了,但是不明白具體是不是要去掉,但是不去掉也沒發現影響什麼,希望高手給看一下,謝謝。