ユーザープロファイルの「一般に表示名」を選択ボックスからテキストボックスに変更しようとしています。これを行う方法についてのアイデアはありますか?何も見つかりませんでした。
1438 次
3 に答える
0
私はこの同じ問題に遭遇し、それを解決するために少し JavaScript を使用しました。Wordpress では、フィールドを好きなように設定display_name
できるため、次のスクリプト (テーマのfunctions.php
ファイル内) を使用して、選択をテキスト フィールドに変換できます。
function change_display_name_to_textfield() {
echo "><div>"; // don't remove '>'
?>
<script>
jQuery(function($) {
// replace display_name select with input
$('select#display_name').after( '<input type="text" name="display_name" id="display_name" value="' + $('#display_name').val() + '" class="regular-text">' ).remove();
})
</script>
<?php
echo "</div"; // don't add '>'
}
// hook into new user and edit user pages
add_action( "user_new_form_tag", "change_display_name_to_textfield" );
add_action( "user_edit_form_tag", "change_display_name_to_textfield" );
開始/終了タグの奇妙な使い方に注意してください。これは、これらの特定のフックがフォームの開始タグの終わりの直前で実行されるためです。そのため、フォーム タグを閉じ、スクリプトを印刷してから、終了タグを閉じずに印刷する必要があります。
于 2015-02-06T07:28:36.087 に答える
0
管理者ユーザーの編集ページについては、最も簡単な方法の 1 つを見つけました。
add_action( 'personal_options', 'rm_personal_options' );
function rm_personal_options($profileuser){
if( !is_admin() ) return; ?>
<script type="text/javascript">
jQuery(document).ready(function($){
//$("input#nickname").parent().parent().hide();
$("select#display_name").replaceWith(function(){
return '<input type="text" name="display_name" id="display_name" value="'+$(this).val()+'" class="regular-text" style="width:25em" />';
});
});
</script>
<?php
}
テーマファイルの functions.php に貼り付けるだけです:)
于 2019-03-30T20:19:07.013 に答える