最近在优化完善隽永东方项目管理平台,鼓励客户提交项目需求表,成为隽永东方官网会员,然后申请加入所对应的项目群组,与隽永东方项目工程师实时高效互动,于是问题来了,默认BuddyPress 的 Activity post form 是一个纯文本输入框,不可以上传图片和视频之类的,对于客户来说互动中难免需要通过上传图片的形式进行解释一些明细的需求之类的,因此这个表单开放多媒体上传和编辑变得势在必行,经过研究完美实现,代码不敢独享,分享如下:

    首先,我们假设你使用了BuddyPress的子模板,查找如下目录里边的post-form.php文件:

    /child-theme/buddypress/activity/post-form.php

    打开此文件,找到如下代码:

    <div id="whats-new-textarea"> <textarea name="whats-new" id="whats-new" cols="50" rows="10"><?php if ( isset( $_GET['r'] ) ) : ?>@<?php echo esc_textarea( $_GET['r'] ); ?> <?php endif; ?></textarea> </div>

    替换为:

    <div id="whats-new-textarea"> <?php do_action( 'whats_new_textarea' ); ?> </div>

    然后,编辑这个文件:/wp-content/plugins/bp-custom.php 如果不存在这个文件则创建他,打开此文件输入以下代码:

    function bpfr_whats_new_tiny_editor() {
    	// deactivation of the visual tab, so user can't play with template styles
    add_filter ( 'user_can_richedit' , create_function ( '$a' , 'return false;' ) , 50 );
    
    	// building the what's new textarea
    	if ( isset( $_GET['r'] ) ) :
    	$content = esc_textarea( $_GET['r'] ); 
    	endif;
    
    	// adding tinymce tools
    	$editor_id = 'whats-new';
    		$settings = array( 
    		'textarea_name' => 'whats-new', 
    		'teeny' => true, 
    		'media_buttons' => true, 
    		'drag_drop_upload' => true, 
    		'quicktags' => array(
    		'buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,close'));	
    	
    	// get the editor	
    	wp_editor( $content, $editor_id, $settings );
    }
    add_action( 'whats_new_textarea', 'bpfr_whats_new_tiny_editor' );

    保存退出后,清空缓存,然后刷新前台指定页面就可以看到效果了:

    BuddyPress-activity-rich-editor1BuddyPress-activity-rich-editor-metion