WordPress Asgaros Forum添加多个帖子反应触发致命错误求助
解决Asgaros Forum添加多个帖子反应的致命错误问题
你遇到的致命错误根源是重复定义了同名函数add_reactions——PHP不允许在同一作用域内多次定义同名函数,这会直接触发致命错误。就算没报错,后面的函数也会覆盖前面的,最终只会生效最后一个反应。
正确的做法是把所有自定义反应都放在同一个add_reactions函数里,一次性向原反应数组中添加多个项:
function add_reactions($reactions) { // 添加"喜欢"反应 $reactions['amar'] = array( 'icon' => 'fas fa-heart', 'screen_reader_text' => __('Amar', 'asgaros-forum') ); // 添加"有趣"反应 $reactions['divertido'] = array( 'icon' => 'fas fa-laugh', 'screen_reader_text' => __('Divertido', 'asgaros-forum') ); // 添加"难过"反应 $reactions['triste'] = array( 'icon' => 'fas fa-sad-tear', 'screen_reader_text' => __('Triste', 'asgaros-forum') ); // 添加"生气"反应 $reactions['enojado'] = array( 'icon' => 'fas fa-angry', 'screen_reader_text' => __('Enojado', 'asgaros-forum') ); // 添加"惊讶"反应 $reactions['sorprendido'] = array( 'icon' => 'fas fa-surprise', 'screen_reader_text' => __('Sorprendido', 'asgaros-forum') ); // 添加"精彩"反应 $reactions['genialidad'] = array( 'icon' => 'fas fa-fire', 'screen_reader_text' => __('Genialidad', 'asgaros-forum') ); // 添加"点赞"反应 $reactions['elegante'] = array( 'icon' => 'fas fa-lightbulb', 'screen_reader_text' => __('Elegante', 'asgaros-forum') ); return $reactions; } add_filter('asgarosforum_reactions', 'add_reactions');
这个逻辑的核心是:asgarosforum_reactions过滤器会传递现有的反应数组给回调函数,我们只需要在这个数组中逐个添加自定义的反应项,最后返回修改后的数组即可,这样所有反应都会被正确加载。
内容的提问来源于stack exchange,提问作者Buddybud
相关产品推荐
相关产品推荐

