Contenu de la boîte de dialogue: comment limiter la quantité de texte qu'un utilisateur entre dans la zone d'informations biographiques du profil d'utilisateur?
Avec une fonction? Ou, jQuery s'il n'y a aucun moyen avec une fonction?
Si cela compte, j'utilise <?php echo $curauth->user_description; ?>
pour saisir le texte.
Merci.
Vous pouvez le faire en utilisant une validation à la fois côté client et côté serveur. Si vous faites quelque chose côté client, vous devez également dupliquer les fonctionnalités sur le serveur. Les outils de débogage modernes font qu'il est beaucoup trop facile de contourner la fonctionnalité JavaScript.
Cette question se prête bien pour commencer résolue en tant que plugin, alors je l'aborde comme telle.
Commencez par créer un répertoire dans votre répertoire/wp-content/plugins nommé "profile-limitation".
Créez ensuite un fichier JavaScript qui contiendra un peu de jQuery pour limiter la longueur du champ de description:
Il ajoute l'attribut longueur maximale (défini arbitrairement à 140) à la zone de texte de description
(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);
Enregistrez ce fichier sous "plugin.js".
Ensuite, ouvrez un nouveau fichier. Premièrement, nous devons ajouter un en-tête pour que WordPress lise ceci comme un plugin:
<?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
*/
?>
Deuxièmement, nous devons inclure la source JavaScript que nous venons de créer. Nous voulons uniquement faire cela dans le tableau de bord, nous utilisons donc la fonction 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');
Après cela, nous devons effectuer une validation côté serveur afin de créer une fonction qui lise la description de l'utilisateur et, si elle dépasse 140 caractères, la tronquera aux 140 premiers caractères de tout ce qu'ils ont stocké.
Ajoutez cette fonction directement sous celle que nous avons ajoutée ci-dessus:
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');
Notez que nous accrochons le crochet profile_personal_options
pour qu'il se déclenche lorsque la page "Profil" est rendue.
Enregistrez ce fichier sous le nom plugin.php.
Ensuite, sautez dans le menu du plugin dans WordPress et recherchez "Limitation du profil". Activez-le, puis accédez à votre page de profil utilisateur. Tentative de modification de la description - vous permettant d’ajouter tout votre code correctement, les profils ne doivent plus dépasser 140 caractères.
Fonctions utilisées ...