Override img class in gallery

时间:2014-11-01 作者:fefe

我使用Wordpress for AngularJS作为后端(wp json插件),实际上我为主题制作的结构是这样的

myApptheme
  -style.css //nothing special here just inits the theme
  -index.php
  -header.php
  -functions.php
  lib //here some overrides php
  --gallery.php
  app //holds the angular stuff generated with yo angular
  bower_components //bower packages what I need 
在画廊里。php(这是我从roots借来的,有自己的修改)我添加了Masony所需的标记,并尝试过滤我的库项目,并为引导添加自定义类(img responsive)。代码段如下所示。

/**
 * Add class="img-responsive" to attachment items
 */


function responsive_attachment_link_class($html) {

   $classes = \'img-responsive\'; // separated by spaces, e.g. \'img image-link\'

  // check if there are already classes assigned to the anchor
  if ( preg_match(\'/<img.*? class="/\', $html) ) {
    $html = preg_replace(\'/(<img.*? class=" .*?)(".*?\\="">)/\', \'$1 \' . $classes . \' $2\', $html);
  } else {
    $html = preg_replace(\'/(<img.*?)(\\>)/\', \'$1 class="\' . $classes . \'" $2\', $html);
  }
  // remove dimensions from images,, does not need it!
  $html = preg_replace( \'/(width|height)=\\"\\d*\\"\\s/\', "", $html );
  return $html;
}

add_filter(\'wp_get_attachment_link\', \'responsive_attachment_link_class\'); 
正在删除img width|height起作用,但类重写不起作用。这些代码有什么问题?

actual output

<img alt="ind018" class="attachment-large" src="http://wp.local/wp-content/uploads/2014/08/ind018-728x1024.jpeg">

expected

<img alt="ind018" class="img-responsive" src="http://wp.local/wp-content/uploads/2014/08/ind018-728x1024.jpeg">

1 个回复
SO网友:SLH

您应该添加!important 以覆盖样式。更好的方法是复制.img-responsive 样式,并将这些样式应用于所需的HTML元素,而不是使用PHP添加类。

img.attachment-large {
    display: block;
    max-width: 100%;
    height: auto;
}
或者,如果类不是常量,则通过父元素以元素为目标。

或使用this 滤器

function my_image_class_filter( $classes ) {
    return $classes.\' attachment-large\';
}
add_filter( \'get_image_tag_class\', \'my_image_class_filter\' );`

结束

相关推荐

子主题不覆盖父主题style le.css

我刚刚创建了一个儿童主题,但我在风格上做的每一个改变。css不会覆盖父样式。css-其他文件工作。我就是这样做的:在主题目录中创建新的子主题文件夹复制原始样式。css到它</在Wordpress主题选项中选择并激活了my childtheme,添加到标题“模板:orion”</现在,当我改变儿童风格时。css。。。。页面仍会照样处理更改。为什么?