向COMMENTS_TEMPLATE添加过滤器

时间:2016-10-04 作者:tristanojbacon

我正在尝试向<form> 标记,但未添加该类。以下是我迄今为止所做的:

function pwp_comments_form_pure($output) {
    $output = preg_replace(\'/class="comment-form"/\', \'class="comment-form pure-form"\', $output);
    return $output;
}
add_filter(\'comments_template\', \'pwp_comments_form_pure\');
我知道preg_replace 这种方法是可行的,因为我对默认搜索表单也做了同样的操作,并且没有任何问题:

function pwp_search_form_pure($output) {
    $output = preg_replace(\'/class="searchform"/\', \'class="searchform pure-form"\', $output);
    return $output;
}
add_filter(\'get_search_form\', \'pwp_search_form_pure\');
我已经三次检查了类名和连字符,它们都匹配。

我还尝试将优先级参数1和100添加到comments_template 过滤,但没有什么区别。

WordPress默认值中是否有我不知道的覆盖?

2 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

任何comments_template 过滤器应返回an absolute filepath to the comments template - 使用comment_form_defaults 并设置class_form 参数:

add_filter( \'comment_form_defaults\', function ( $args ) {
    $args[\'class_form\'] = \'my form classes\';
    return $args;
});

SO网友:cjbj

您使用的筛选器是about the template path, 它对表单输出没有任何作用。要添加的类不需要筛选器。您可以在将调用的参数设置为comment_form 在模板中。

$comment_args        =  array (
  \'id_form\'         =>  \'comment-form\',
  \'class_form\'      =>  \'comment-form pure-form\',
  ....
  );
$comment_form ($comment_args);

相关推荐

绕过WP查询中的“supress_Filters”

显然,出于某种不合逻辑的原因,开发人员决定获取所有语言帖子的唯一方法是添加supress_filters=true 到WP\\u查询(而不是像这样language_code=all 选项)。无论如何,我的情况是,我需要获取所有语言的帖子,但也需要使用过滤器修改WP\\u查询。有没有办法强制将我的过滤器添加到查询中,即使supress_filters 设置为false?这是我需要添加的过滤器:add_filter( \'posts_where\', function($where, $wp_query) {