Вывод бокового сайдбара для одиночных записей или страниц в Twenty Eleven
В теме Twenty Eleven по умолчанию отсутствует вывод сайдбаров на некоторых страницах. Далее 2 способа вернуть сайдбары для этих страниц.
1 способ
Перейти в редактор темы, открыть файл single.php, найти в нем эту строку:
< ?php get_footer(); ?>
и поместить над ней этот код:
< ?php get_sidebar(); ?>
должно выглядить так:
< ?php get_sidebar(); ?>
< ?php get_footer(); ?>
Сохранить файл.
Открыть файл style.css. В самый конец файла занести написанные ниже стили:
.singular #primary {
margin: 0 -26.4% 0 0;
}
#nav-single {
display: none;
}
.singular .entry-header .entry-meta {
position: relative;
}
.singular .hentry {
padding: 0;
}
.singular .entry-header, .singular .entry-content, .singular footer.entry-meta, .singular #comments-title {
width: 100%;
}
.singular #content, .left-sidebar.singular #content {
margin: 0 34% 0 7.6%;
}
.singular article .entry-title {
padding-top: 0;
}
.singular .entry-meta .edit-link a {
right: 0;
top: 0;
left: auto;
}
Готово.
2 способ
Необходимо создать дочернюю тему. Для этого создать подпапку в папке /wp-content/themes и назвать ее, к примеру, twentyelevenchild. В этой папке нужно создать файл style.css и поместить туда код:
/*
Theme Name: Twenty Eleven Child
Author: itmemoman
Description: a child theme, based on the 2011 theme for WordPress
Author URI: http://wordpress.org/
Template: twentyeleven
*/
@import url(../twentyeleven/style.css);
В эту же папку нужно добавить(создать) файл functions.php; для подавления действия .singular body_class для отдельных записей и страниц добавить этот фильтр в этот файл:
add_filter('body_class', 'blacklist_body_class', 20, 2);
function blacklist_body_class($wp_classes, $extra_classes) {
if( is_single() || is_page() ) :
// List of the classes to remove from the WP generated classes
$blacklist = array('singular');
// Filter the body classes
foreach( $blacklist as $val ) {
if (!in_array($val, $wp_classes)) : continue;
else:
foreach($wp_classes as $key => $value) {
if ($value == $val) unset($wp_classes[$key]);
}
endif;
}
endif; // Add the extra classes back untouched
return array_merge($wp_classes, (array) $extra_classes);
}
Открыть файл single.php и/или page.php и добавить в него следующий код (как в предыдущем способе):
< ?php get_sidebar(); ?>
перед
< ?php get_footer(); ?>
Дополнительно можно настроить style.css дочерней темы. Например, стили могут быть следующими:
.single #author-info {
background: #f9f9f9;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 2.2em 0% 0 0%;
padding: 20px 35.4%;
}
Также можно добавить screenshot.jpg изображения получившейся темы в эту папку.
Готово.