如何在不修改任何核心文件的情况下,使用tinyMCE获取用户的个人信息?

时间:2011-11-12 作者:Tara

我注意到,当你在个人资料中键入用户的“个人信息”时,它会显示在一页中!看起来真的很糟糕。因此:

有没有一种方法可以在不干扰任何核心文件和插件的情况下使用tinyMCE或其他用户“传记信息”解决方案?

非常感谢。

5 个回复
最合适的回答,由SO网友:Tara 整理而成

只是将其添加到主题的功能中。php解决了这个问题(防止从作者的简历中剥离html):

remove_filter(\'pre_user_description\', \'wp_filter_kses\');  
add_filter( \'pre_user_description\', \'wp_filter_post_kses\' ); 

SO网友:Sagive

将此添加到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\');
.有人应该为此赊账,但我不记得我在哪里找到的。。

无论如何,这对我来说很好

SO网友:Sachin Patel

不确定这是否是一种完美的方式,但它通过使用jQuery删除description元素,然后为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\' );

SO网友:Kevin Leary

我编写了一个插件,用WordPress可视化编辑器TinyMCE替换传记信息概要文件字段,允许您使用WordPress 3.3发布的新功能wp\\u editor()使用富格文本编辑作者的传记。

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

使用此插件将确保编辑器不会在下一次核心更新中被删除,出于安全原因,您肯定应该这样做。

SO网友:Alexufo

Just add it

function mysite_show_extra_profile_fields($user) {
    wp_enqueue_editor();

    ?>
    <script>
    document.addEventListener("DOMContentLoaded", function(event) {
        var id = \'description\';
    
        wp.editor.initialize(id, {
            tinymce: {
                wpautop: true
            },
            quicktags: true
        });
    });
    </script>
    <?
    }
    
    add_action(\'show_user_profile\', \'mysite_show_extra_profile_fields\');
结束

相关推荐

Posting as different users

我会尽量简短一点。我是一家报纸的站长,在一天内我上传了一期报纸,其中有多个作者撰写了几篇文章。问题是:我如何制作一篇文章并显示一个custon作者的名字,而不必登录到其他用户,只需让它正确显示即可。我真的希望能够做到这一切从一个管理帐户。谢谢各位,我真的很感谢你们的帮助!