需要‘ADD_FILTER’(T_STRING)

时间:2014-01-31 作者:JPL

我正在尝试为get\\u avatar添加一个过滤器,以便我可以实现avatar对齐,但当我这样做时,我收到expected \'add_filter\' (T_STRING

第一种方法

add_filter(\'get_avatar\', \'remove_photo_class\');
function remove_photo_class($avatar) {
   return str_replace(\' avatar\', $image_align , $avatar);
}
第二种方法

function mytheme_get_avatar( $myavatar ) {
   $myavatar = \'<img class="\'.$image_align.\'" src="<\' . get_template_directory_uri() .      \'/images/authors/\' . get_the_author_meta(\'ID\', $user_id) . \'.jpg" alt="\' . get_the_author() . \' ">\';
   return $myavatar;
}
//add_filter( \'get_avatar\', \'mytheme_get_avatar\' );
两者都返回相同的错误。整个代码可以在以下位置找到Pastebin.

2 个回复
SO网友:s_ha_dum

您正在处理一个类。大多数内容都必须在类方法中,而不是计算类变量/常量。

其次,在向挂钩中添加类方法而不是函数时,语法略有不同。

function widget( $args, $instance ) {
  add_filter(\'get_avatar\', array($this,\'remove_photo_class\'));
  // the rest of your code
}
我还会编辑您的回调以删除其自身:

function remove_photo_class($avatar) {
  remove_filter(\'get_avatar\', array($this,\'remove_photo_class\'));
  return str_replace(\' avatar\', $image_align , $avatar);
}
或者在widget 方法:

function widget( $args, $instance ) {
  add_filter(\'get_avatar\', array($this,\'remove_photo_class\'));
  // the rest of your code
  remove_filter(\'get_avatar\', array($this,\'remove_photo_class\'));
}
或者它可能会把主题的其他部分搞砸。

SO网友:Chittaranjan

您不能直接将add_filter 钩住类内部。考虑第一种方法,将代码行

add_filter(\'get_avatar\', \'remove_photo_class\');
内部widget 作用第二种方法也应遵循同样的原则。

结束

相关推荐

theme functions (hooks)

WordPress已经提出了这个问题,但没有答案。我只是想在这个论坛上试试,如果有人知道的话,因为我也有同样的问题。要使用jquery滑块编辑我的主题,如何转到该脚本?,显示“$主题->挂钩(\'content\\u before\');”在content div标记中。有人能帮忙吗?我的主题索引。php包含以下内容<div id=\"main\"> <?php $theme->hook(\'main_before\'); ?> &#x