Php 挂接到comment_text()以添加周围的标记
试图钩住Wordpress API提供的函数,将每个注释的输出包装到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
…
容器中,我遇到了以下问题:
如果没有我添加的筛选器,的输出如下所示:
<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);