Итак, я не очень силен в php и java, я учусь. Сейчас я работаю с Genesis, используя эпик, если это имеет значение. Неудача, но попытка написать фильтр для добавления класса к определенному div в шаблоне в functions.php
Я расширил свой сайт, но я не хочу, чтобы весь раздел «Блог» (главная страница блога, категории и отдельный пост) был настолько широким, чтобы я мог использовать нативное программирование, а также научиться писать этот материал.
сейчас я контролирую ширину с помощью моей таблицы стилей
.page-id-89 .site-inner .wrap {
padding: 0 5% 0;
}
Как я могу написать это как фильтр и подключить его к «.site-inner .wrap» в вышеупомянутых разделах сайта?
так что в основном функция ищет «.site-inner .wrap» и добавляет класс (скажем .squeeze) с моим заполнением к ним для этих типов записей
Я ценю любую помощь, поскольку я изучаю мой путь через это! Хороших выходных
Работа, вероятно, уже сделана для вас. Если ваша тема зовет body_class
правильно, тогда ваш элемент тела уже должен иметь классы, установленные для текущего шаблона. Например, вот класс тела домашней страницы сайта 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
к элементу тела на домашней странице.
Вот полезные руководства по крючкам и фильтрам в Бытие братан.
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
объявляется в общем, поэтому мы не можем добавлять классы в конкретный раздел.
Надеюсь, это поможет.