插件忽略了WordPress注释函数中的换行符或<br>标记

时间:2021-10-09 作者:Liang

我发现有一个票证支持插件。它在票据系统回复中使用WordPress注释功能。

问题是插件将不接受换行符或带<;br>;。我如何才能接受<;br&燃气轮机;标记或换行?

                <div class="reply_form">
                    <?php
                    $comments_args = array(
                        \'title_reply\' => __(\'Reply\', \'orbisius_support_tickets\'),
                        \'title_reply_to\' => \'\',
                        \'label_submit\' => __(\'Send\', \'orbisius_support_tickets\'),
                        \'comment_notes_after\' => \'\',
                        \'comment_notes_after\' => \'\',
                        \'comment_notes_before\' => \'\',
                        \'comment_field\'        => \'<p class="comment-form-comment"><label for="comment">\' . \'</label> <textarea id="comment" name="comment" cols="45" rows="5" maxlength="65525" required="required"></textarea></p>\',
                    );
如果您感兴趣,这里是插件
https://we.tl/t-iLFfJ3wKxH

安装了插件的实时演示网站:
https://qwq.rf.gd/?orbisius_support_tickets_data%5Bticket_id%5D=51

已应用换行符。Pictures Examples提交后,换行符不起作用。After Submit Comments

1 个回复
最合适的回答,由SO网友:Sharif Mohammad Eunus 整理而成

在…上orbisius-support-tickets/modules/core/cpt.php 文件使用函数将注释清理为单行输入sanitize_text_field() 这将删除换行符。对于文本区域字段,WordPress具有sanitize_textarea_field();

参考号:https://developer.wordpress.org/reference/functions/sanitize_textarea_field/

在该文件中,您可以找到该行

 $comment = sanitize_text_field( wp_strip_all_tags( $_POST[\'comment\'] ) );
并将其替换为:

$comment = sanitize_textarea_field( wp_strip_all_tags( $_POST[\'comment\'] ) );