Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 挂接到comment_text()以添加周围的标记_Php_Wordpress_Comments_Hook_Add Filter - Fatal编程技术网

Php 挂接到comment_text()以添加周围的标记

Php 挂接到comment_text()以添加周围的标记,php,wordpress,comments,hook,add-filter,Php,Wordpress,Comments,Hook,Add Filter,试图钩住Wordpress API提供的函数,将每个注释的输出包装到…容器中,我遇到了以下问题: 如果没有我添加的筛选器,的输出如下所示: <p>Hello User!</p> <p>Thank you for your comment.</p> <p>Stefan</p> 正如我从输出中看到的,给定的过滤器可以工作,但它对内容的第一段有负面影响,如下面的示例所示。第一段应该是你好,用户 但看起来是这样的:你好,用户 &l

试图钩住Wordpress API提供的函数,将每个注释的输出包装到
容器中,我遇到了以下问题:

如果没有我添加的筛选器,的输出如下所示:

<p>Hello User!</p>
<p>Thank you for your comment.</p>
<p>Stefan</p>
正如我从输出中看到的,给定的过滤器可以工作,但它对内容的第一段有负面影响,如下面的示例所示。第一段应该是
你好,用户

但看起来是这样的:
你好,用户

<div class="comment-text">
    Hello User!
    <p>Thank you for your comment.</p>
    <p>Stefan</p>
</div>

用户好!
谢谢你的评论

斯特凡


有什么想法或提示我做错了什么吗?

尝试降低函数的优先级,可能前面有一些格式化函数

add_filter('comment_text', 'stefan_wrap_comment_text', 1000);

哎哟,刚刚无意中发现了文件
wp includes/default filters.php
,发现每个默认值有几个过滤器应用于同一个函数:

add_filter( 'comment_text', 'wptexturize'            );
add_filter( 'comment_text', 'convert_chars'          );
add_filter( 'comment_text', 'make_clickable',      9 );
add_filter( 'comment_text', 'force_balance_tags', 25 ); 
add_filter( 'comment_text', 'convert_smilies',    20 );
add_filter( 'comment_text', 'wpautop',            30 );
最后一个优先级为30的过滤器调用用于将双线中断替换为
..

的函数。默认情况下,在优先级10上注册新过滤器。通过选择更高的数字将我的过滤器更改为最后一个,一切正常

// This doesn't work because default priority is 10:
// add_filter('comment_text', 'stefan_wrap_comment_text');
// Add a lower priority (higher number) to apply this filter at last: 
add_filter('comment_text', 'stefan_wrap_comment_text', 99);

@伊沃:谢谢,你完全正确。我已经找到了解决方案,并为我的问题写了一个答案,以便其他人有机会比我更快地解决这个问题。
// This doesn't work because default priority is 10:
// add_filter('comment_text', 'stefan_wrap_comment_text');
// Add a lower priority (higher number) to apply this filter at last: 
add_filter('comment_text', 'stefan_wrap_comment_text', 99);