我有buddypress安装。在发布活动时,我将一些数据(html)作为元数据。让我展示一些代码:
这是在发布活动时触发的操作。
function add_activitylink_to_activity( $content, $user_id, $activity_id ) { ?>
<script type="text/javascript" >
var activity_id = \'<?php echo $activity_id; ?>\';
if ( !jQuery(\'#add_activity_link_area\').hasClass(\'empty\') ) {
var add_link = jQuery("#add_activity_link_area").html();
jQuery.ajax({
type : \'POST\',
url : ajaxurl,
data : {
action : \'addActivityMeta\',
activity_id: activity_id,
add_link: add_link
},
dataType: "html",
success : function(data) {
jQuery("#activity-" + activity_id).find(".activity-inner").after(jQuery("<div class=\'meta-activitylink\'></div>").html(add_link));
},
error: function(MLHttpRequest, textStatus, errorThrown){
alert(textStatus);
}
})
}
</script>
<?php }
add_action( \'bp_activity_posted_update\', \'add_activitylink_to_activity\', 10, 3 );
下面是一个ajax处理程序:
function addActivityMeta() {
bp_activity_update_meta( $_POST[\'activity_id\'], \'activitylink\', $_POST[\'add_link\'] );
die(\'success\');
}
只要我以管理员身份登录,一切正常,但对于普通用户,meta不会发布
据我所知,这是因为“未过滤的html”,但我不太懂,这听起来可能很愚蠢:我能以某种方式过滤它吗D
有表格和图像链接等。
或者是否有任何解决方法?例如,我想在mysql查询中插入这个meta?这是一个糟糕的解决方案吗?