web-dev-qa-db-ja.com

著者プロフィールの略歴の長さを制限する

それは言いたいのですが、どうすればユーザープロファイルの[伝記情報]領域にユーザーが入力するテキストの量を制限できますか。

機能付き?または、jQueryの機能と方法がない場合はどうなりますか?

それが問題であれば、私はテキストをつかむために<?php echo $curauth->user_description; ?>を使っています。

ありがとう。

3
markratledge

これを行うには、クライアント側とサーバー側の両方の検証を使用します。クライアント側で何かをしているのなら、サーバー上の機能も複製するべきです。最近のデバッグツールでは、JavaScriptの機能を迂回するのは非常に簡単です。

この質問は、プラグインとして解決し始めるのに適しています。そのため、私はそれに近づいています。

まず、あなたの/ wp-content/pluginsディレクトリに "profile-limit"という名前のディレクトリを作成してください。

次に、descriptionフィールドの長さを制限するためのjQueryを少し含むJavaScriptファイルを作成します。

  • タイトルを確認して、プロフィールページにアクセスしていることを確認します
  • 説明テキスト領域に最大長属性(140で任意に設定)を追加します。

    (function($) {
        $(function() {
            // Verify that we're on the "Profile" page
            if($.trim($('h2').text()) === 'Profile') { 
    
                // Add the max length attribute to the description field.
                $('#description').attr('maxlength', 140);
    
            } // end if
        });
    })(jQuery);
    

このファイルを "plugin.js"として保存します。

次に、新しいファイルを開きます。まず、WordPressがこれをプラグインとして読み込めるようにヘッダーを追加する必要があります。

<?php

/*
Plugin Name: Profile Limitation
Plugin URI: http://wordpress.stackexchange.com/questions/43322/limit-the-length-of-the-author-profile-biographical-text
Description: This plugin limits the user profile description from exceeding 140 characters.
Author: Tom McFarlin
Version: 1.0
Author URI: http://tom.mcfarl.in
*/

?>

次に、作成したばかりのJavaScriptソースを含める必要があります。ダッシュボードでのみこれを行いたいので、admin_enqueue_scripts関数を使用しています。

function profile_limitation_scripts() {

    wp_register_script('profile-limitation', plugin_dir_url(__FILE__) . '/plugin.js');
    wp_enqueue_script('profile-limitation');

} // end custom_profile_scripts
add_action('admin_enqueue_scripts', 'profile_limitation_scripts');

その後、サーバー側の検証を行う必要があるので、ユーザーの説明を読み取り、140文字を超える場合は、格納されているものすべての最初の140文字まで切り捨てます。

この関数を上で追加したもののすぐ下に追加します。

function profile_description_length_limit() {

    global $current_user;
    get_currentuserinfo();

    if(strlen(($description = get_user_meta($current_user->ID, 'description', true))) > 140) {
        update_user_meta($current_user->ID, 'description', substr($description, 0, 140));
    } // end if

} // end custom_profile_description
add_action('profile_personal_options', 'profile_description_length_limit');

"Profile"ページがレンダリングされたときに起動するように、profile_personal_optionsフックにフックしていることに注意してください。

このファイルをplugin.phpとして保存します。

次に、WordPressのプラグインメニューに移動して、「Profile Limitation」を探します。それをアクティブにし、そしてあなたのUser Profileページにナビゲートしてください。説明を編集しようとしています - あなたがあなたのすべてのコードを正しく追加することを許可して、プロファイルはもはや140文字の長さを超えてはいけません。

使用されている関数...

4
Tom