web-dev-qa-db-fra.com

Comment utiliser tinyMCE pour les «informations biographiques» de l'utilisateur sans jouer avec un fichier core?

J'ai remarqué que lorsque vous saisissez les "informations biographiques" de l'utilisateur sur le profil, elles apparaissent sur une seule page! Ça a l'air vraiment terrible. Donc:

Existe-t-il un moyen d'utiliser tinyMCE ou une autre solution pour les "informations biographiques" de l'utilisateur sans jouer avec aucun fichier principal et sans aucun plugin?

Merci beaucoup.

1
Tara

Il suffit d'ajouter ceci dans le fichier functions.php du thème pour résoudre le problème (éviter de retirer le code HTML de la biographie de l'auteur):

remove_filter('pre_user_description', 'wp_filter_kses');  
add_filter( 'pre_user_description', 'wp_filter_post_kses' ); 
1
Tara

Je ne sais pas si c'est le moyen idéal de le faire, mais cela a fonctionné pour moi en supprimant l'élément de description à l'aide de jQuery, puis en ajoutant l'éditeur pour l'élément de description.

/*******************************************
* TinyMCE EDITOR "Biographical Info" USER PROFILE
*******************************************/
function biographical_info_tinymce() {
    if ( basename($_SERVER['PHP_SELF']) == 'profile.php' || basename($_SERVER['PHP_SELF']) == 'user-edit.php' && function_exists('wp_tiny_mce') ) {
        echo "<script>jQuery(document).ready(function($){ $('#description').remove();});</script>";
        $settings = array(
            'tinymce' => array(
                'toolbar1' => 'bold,italic,bullist,numlist,link,unlink',
                'toolbar2' => '',
                'toolbar3' => '',
                'toolbar4' => '',
            ),
            'wpautop' => true,
            'media_buttons' => false,
            'quicktags' => false,
        );
        $description = get_user_meta( $user->ID, 'description', true);
        wp_editor( $description, 'description', $settings );
    }
}
add_action('admin_head', 'biographical_info_tinymce');
remove_filter('pre_user_description', 'wp_filter_kses');
add_filter( 'pre_user_description', 'wp_filter_post_kses' );
2
Sachin Patel

J'ai écrit un plugin qui remplace le champ de profil Info biographique par l'éditeur visuel WordPress, TinyMCE, vous permettant d'éditer la biographie d'un auteur en utilisant du texte enrichi en utilisant une nouvelle fonction, wp_editor (), qui a été publié avec WordPress 3.3.

http://wordpress.org/extend/plugins/visual-biography-editor/

L'utilisation de ce plugin garantira que l'éditeur n'est pas effacé avec la prochaine mise à jour principale, ce que vous devez absolument faire pour des raisons de sécurité.

2
Kevin Leary

Ajoutez ceci à votre functions.php:

/*******************************************
* TinyMCE EDITOR "Biographical Info" USER PROFILE
*******************************************/
function biographical_info_tinymce() {
if ( basename($_SERVER['PHP_SELF']) == 'profile.php' || basename($_SERVER['PHP_SELF']) == 'user-edit.php' && function_exists('wp_tiny_mce') ) {
wp_admin_css(); 
wp_enqueue_script('utils');
wp_enqueue_script('editor');
do_action('admin_print_scripts');
do_action("admin_print_styles-post-php");
do_action('admin_print_styles');
remove_all_filters('mce_external_plugins');

add_filter( 'teeny_mce_before_init', create_function( '$a', '
$a["theme"] = "advanced";
$a["skin"] = "wp_theme";
$a["height"] = "300";
$a["width"] = "440";
$a["onpageload"] = "";
$a["mode"] = "exact";
$a["elements"] = "description";
$a["theme_advanced_buttons1"] = "formatselect, forecolor, bold, italic, pastetext, pasteword, bullist, numlist, link, unlink, outdent, indent, charmap, removeformat, spellchecker, fullscreen, wp_adv";
$a["theme_advanced_buttons2"] = "underline, justifyleft, justifycenter, justifyright, justifyfull, forecolor, pastetext, undo, redo, charmap, wp_help";
$a["theme_advanced_blockformats"] = "p,h2,h3,h4,h5,h6";
$a["theme_advanced_disable"] = "strikethrough";
return $a;' ) );

wp_tiny_mce( true );
}
}
add_action('admin_head', 'biographical_info_tinymce');

. Quelqu'un est à crédit pour cela, mais je ne me souviens pas où je l'ai trouvé ..
Quoi qu'il en soit, cela fonctionne très bien pour moi

1
Sagive SEO