好的,所以我在php和java方面不是很强,我正在学习。现在我正在使用epik工作,如果重要的话。没有运气但是试图编写一个过滤器来将一个类添加到functions.php
模板上的特定div中我扩大了我的网站,但我不希望整个博客部分(博客主页,类别和单个帖子)一样宽,所以我可以使用本机编程,并学习如何编写这些东西。
现在我通过我的样式表控制宽度
.page-id-89 .site-inner .wrap {
padding: 0 5% 0;
}
如何将此作为过滤器编写并将其挂钩到网站上述部分中的'.site-inner .wrap'?
所以基本上这个函数会查找'.site-inner .wrap'并在那些帖子类型上附加一个类(比如.squeeze)和我的填充
我很感激任何帮助,因为我通过这种方式学到了很多东西!祝周末愉快
答案 0 :(得分:1)
这项工作可能已经完成了。如果您的主题正确调用body_class
,那么您的body元素应该已经为当前模板设置了类。例如,以下是WordPress网站主页的正文类:
home page page-id-8 page-template
关于单个帖子的正文类
single single-post postid-5418 single-format-standard
如果您使用的是自定义页面模板,则还会有一个特定于该模板的类,通常为my-custom-template-php
如果您要扩展的所有页面,或者相反,您不想扩展的页面都有特定的主体类,则可以在css选择器中使用该类。例如,此选择器仅适用于主页:
.home .site-inner .wrap
如果您无法区分要扩展的模板,可以过滤body_class
函数并使用条件标记添加所需的类:
add_filter('body_class', function($classes) {
if( is_home() ) {
$classes[] = 'wide';
}
return $classes;
});
上面的示例将类wide
添加到主页上的body元素。
答案 1 :(得分:0)
以下是关于创世纪中钩子和过滤器的有用指南。
http://genesistutorials.com/visual-hook-guide/
https://wordpress.org/plugins/genesis-visual-hook-guide/
https://alexanderdejong.com/genesis/changing-adding-custom-classes-html-5/
add_filter( 'genesis_attr_content-sidebar-wrap', 'custom_add_css_attr' );
function custom_add_css_attr( $attributes ) {
if ( is_page_template( 'page_blog.php' ) ) {
$attributes['class'] .= ' squeeze';
}
return $attributes;
}
您可以使用.site-inner .wrap .content-sidebar-wrap
代替.site-inner .wrap
。我认为.site-inner .wrap
一般是声明的,所以我们不能在特定部分添加类。
希望这会有所帮助。