Twenty Eleven: вывод сайдбара для отдельных записей и страниц

Twenty Eleven: вывод сайдбара для отдельных записей и страниц

Новая тема Twenty Eleven всем бы была хороша, если бы не отсутствие сайдбара на некоторых страницах. Как я понял, многие хотят вернуть сайдбар, причем быстро и без особых усилий. В поисках необходимой информации я наткнулся на одно хорошее руководство, которое описывает процесс установки сайдбара для отдельных записей и страниц. Учитывая, как много пользователей желают сделать это, в ближайшее время стоит ожидать плагина, который выполнял бы все действия в автоматическом режиме. Однако пока такого плагина нет, пользователям приходится проводить необходимые изменения вручную.

Вернуть сайдбар довольно сложно, поскольку файл style.css с каждой новой версией все больше и больше разрастается. Разобраться во всех этих стилях можно лишь после длительного и скрупулезного изучения WordPress, на что требуется время и желание. Ни того, ни другого у людей обычно нет, особенно если их блог связан с каким-либо бизнесом. Поэтому давайте пошагово рассмотрим процесс возвращения сайдбара.

Способ первый: лобовая атака

Шаг первый

Переходим в редактор темы, открываем файл single.php, ищем в нем следующую строку:

<?php get_footer(); ?>

и размещаем над ней следующий код:

<?php get_sidebar(); ?>

Сохраняем файл.

Шаг второй

Открываем файл 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;
}

Все готово. Просто и быстро.

Способ второй: тщательное планирование

Шаг первый

На первом шаге нам понадобится создать дочернюю тему. Для этого мы создадим подпапку в папке /wp-content/themes и назовем ее, к примеру, twentyelevenchild. В эту папку нужно будет поместить файл style.css, который должен содержать следующий код:

/*
Theme Name: Twenty Eleven Child
Author: alchymyth
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; мы вернемся к нему позже.

Шаг второй

Возвращаем сайдбар. Для этого нам понадобится открыть файл single.php и/или page.php и добавить в него следующую строку:

<?php get_sidebar(); ?>

перед строкой

<?php get_footer(); ?> 

Шаг третий

Подавляем действие .singular body_class для отдельных записей и страниц. Чтобы достичь этого, необходимо добавить следующий фильтр в файл functions.php, находящийся в папке с нашей дочерней темой:

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);
}
 

Шаг четвертый

Настраиваем 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%;
}

С помощью стилей дочерней темы можно изменить представление и других элементов. Все зависит от требований автора.

Источники: http://dev-tips.com/featured/remove-an-item-from-an-array-by-value
http://wordpress.stackexchange.com/questions/15850/remove-classes-from-body-class
http://www.transformationpowertools.com/wordpress/twenty-eleven-sidebar-on-single-posts-and-pages
http://tricksmommy.com/2011/07/08/add-sidebar-in-single-post-pages-of-twenty-eleven-wordpress-theme/

Сохранено из oddstyle.ru

Добавить комментарий

%d такие блоггеры, как: