Новая тема 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
Add Sidebar in Single Post Pages of Twenty Eleven WordPress Theme
Спасибо за статью, помогло! На досуге подумаю, как ширину сайдбара увеличить…
Они не пропали, они скорее всего просто сместились в раздел Неактивные виджеты на странице с Виджетами. Или они вообще исчезли?
Akismet по умолчанию доступен в Twenty Eleven. Странно, пока что с такой проблемой никто не отписывался на форуме WordPress. Посмотрим, может кто что посоветует.
Не успел обрадоваться вернувшемуся сайдбару, как обновился до WordPress 3.2.1 и пропали виджеты:(
Вообще исчезли. В доступных только Akismet (если не ошибаюсь, появился после временной активации BuddyPress), в неактивных пусто.
Хотел как лучше… Удалил сайт и последовательно заливал версии 3.1.4, 3.2, 3.2.1
Итог: виджеты не появились, загружается только главная страница, вместо остальных error 404 (в БД вроде все записи целы, uploads скопировал старый).
Создал .htaccess — сработало.
Можно попробовать связаться с вашим хостингом и попросить сделать откат на ту дату, когда сайт еще нормально работал и виджеты были.
Виджеты пропадают, если заменить файлы из корня сайта (там, где index.php и пр.). Теперь всё отображается.
Добрый день.
А не знаете как в этом шаблоне сделать так, что бы название блога, его описание и поиск выводились на картинке? Я пробовал перемещать код в хеддере, но ничего не вышло.
Первое решение, которое пришло в голову, это создать блок div с абсолютным позиционированием, а потом уже настроить его с помощью отступов.
Здравствуйте. Я воспользовался первым способом — всё получилось. Но как сделать вывод сайдбаров на главной странице? Никто не подскажет? Очень надо.
А разве они не выводятся там по умолчанию? В настройках темы можно поставить вывод сайдбара для главной страницы.
По умолчанию не выводятся. У меня во вкладке "настройка темы" нет того что вы сказали
Appearance (внешний вид) — Theme Options, и там выбирается макет для Twenty Eleven.
Вот скрин:
Да, это всё есть, но ничего не меняется. Да, забыл сказать — у меня главная страница это одна из статических страниц. Может из-за этого?
Скорее всего, из-за этого. Код из примера действует только для отдельных страниц с классом .singular.
Всё, разобрался, надо было в файл page.php вставить код
один из плагинов http://wordpress.org/extend/plugins/twenty-eleven…
Не помогло. Все, как было, так и осталось. сайдбар под комментами
Большое спасибо за статью. Воспользовался первым способом и всего за три минуты привел блог в желаемый вид. Очень помогло :)
Отлично написано Скопировал и поставил в тему Всё получилось Спасибо
Делаю все указания по установке сайдбара по первому методу — и ничего не получается, он по прежнему есть только на главной странице….
Ох спасибочки . Сделал все , сайдбар появился на страницах с записями. Респект , Помогаете)
Хороший урок спасибки
Ребята, подскажите а относительно темы Twenty Twelve это сработает? В частности первый способ.
Неизвестно, нужно тестировать.
Подскажите как сделать 2 сайдбар все пишут только про один а мне нужно два
помогите пожалуйста если можете
Попробуйте следующий плагин:
http://wordpress.org/extend/plugins/twenty-eleven-theme-extensions/
Возможно, поможет решить проблему.
Architect Of Ruin
вы знаете ни чего не изменилось как было все с одной левой стороны так и осталось
может как то еще можно
Сделать-то можно, только придется влезать в код, регистрировать отдельную зону виджетов.
Если вам интересно, посмотрите в блоге по поиску статьи про регистрацию областей виджетов.
Сам, к сожалению, помочь не могу, поскольку загружен работой. Максимум, что могу, это подтолкнуть к решению советом.
взял тему с 3 колонками
но в ней такая проблема
при открытии рубрики она не открывается полностью а открывается только немного текста и чтобы открыть полностью надо в конце текста еще раз нажать что бы открылась вся рубрика это очень не удобно
подскажите ПОЖАЛУЙСТА как исправить чтобы при нажатии открывалась целиком вся рубрика
Как я могу помочь, если вы даже не сказали, что это за тема. Как она называется? А то не совсем понятно, о чем идет речь.
Тема называется Sliding Door
там когда нажимаешь на рубрику появляется только заглавие поста и пишет continue reading что бы открыть далее, а мне надо что бы сразу весь пост открывался
как я понял оно прописано в это куске а как изменить я не знаю
/**
* Returns a «Continue Reading» link for excerpts
*
* @since Sliding Door 1.0
* @return string «Continue Reading» link
*/
function slidingdoor_continue_reading_link() {
return ‘ ‘ . __( ‘Continue reading →’, ‘slidingdoor’ ) . »;
}
/**
* Replaces «[…]» (appended to automatically generated excerpts) with an ellipsis and slidingdoor_continue_reading_link().
*
* To override this in a child theme, remove the filter and add your own
* function tied to the excerpt_more filter hook.
*
* @since Sliding Door 1.0
* @return string An ellipsis
*/
function slidingdoor_auto_excerpt_more( $more ) {
return ‘ …’ . slidingdoor_continue_reading_link();
}
add_filter( ‘excerpt_more’, ‘slidingdoor_auto_excerpt_more’ );
/**
* Adds a pretty «Continue Reading» link to custom post excerpts.
*
* To override this link in a child theme, remove the filter and add your own
* function tied to the get_the_excerpt filter hook.
*
* @since Sliding Door 1.0
* @return string Excerpt with a pretty «Continue Reading» link
*/
function slidingdoor_custom_excerpt_more( $output ) {
if ( has_excerpt() && ! is_attachment() ) {
$output .= slidingdoor_continue_reading_link();
}
return $output;
}
То, что вам требуется, делается в файле loop.php.
Открываете файл loop.php.
В нем ищете следующую строку:
Она стоит ближе к концу файла.
В этом разделе ищете следующий код:
и меняете его на:
В итоге для рубрик (и всех других архивных страниц, а также для результатов поиска) будут выводиться полные формы записей.
Здравствуйте у меня появилось 2 проблемы вот первая подскажите пожалуйста в моей теме Sliding Door, там стоит 2 цвета черные и белый, а я бы хотел что бы сайтбары были одним цветом, а сам пост другим, а шапку вообще сделать прозрачной
или все сделать прозрачным, что бы виден был задний фон вместо цвета
подскажите пожалуйста
Чтобы все сделать прозрачным, поставьте фоновое изображение в настройках темы, после чего в стили style.css темы добавьте следующий код:
Я конечно извиняюсь а можно более точное место куда именно вставить этот код
Я еще далек не такой спец как вы
Через панель администратора открываете внешний вид — редактор. Там ищете файл style.css.
В самый его конец добавляете новый стиль (стили в конце файла переопределяют стили, заданные в начале).
Вы не подумайте что я такой тупой я сразу так и понял
просто решил переспросить большое спасибо получилось
и вторая проблемка я не могу найти где поменять размер шрифта рубрик сам шрифт изменил, а как изменить размеры в шапке, в рубрике, и в меню не могу найти
Не волнуйтесь, лучше еще раз переспросить, чем не понять)
Заголовки в сайдбаре:
h3.widget-title
Пункты меню в сайдбаре:
ul.xoxo li
(либо li.widget_categories)
В шапке:
#site-title a
Для меню
.menu
(либо div.menu ul)
Везде пишете нужные стили (к примеру, font:15px arial,sans-serif;)
Вот как будет выглядеть для шапки:
С остальными стилями уже экспериментируйте.
Здравствуйте Дмитрий подскажите мне еще пару вопросов пожалуйста
как сделать на фоне не много много маленьких картинок которые можно поставить в админке а большую фотографию
напомню тема Sliding Door
с уважением Александр
В админке есть такие настройки в разделе Фон. Вы выбрали просто «замостить фон», а там его можно зафиксировать, и он будет один на всю страницу.
Спасибо разобрался я раньше ставил так но по ходу ставил маленький размер
Дмитрий вы мне тогда писали код
div#wrapper {
background:transparent;
}
это для прозрачного фона, а как сделать его мутным, размытым
Для этого есть правило opacity из CSS3.
Правда оно может не работать в некоторых браузерах. Задается примерно так:
Цифру корректируйте, пока не будет достигнут нужный эффект.
этот код надо вставить вместо
div#wrapper {
background:transparent;
}
или после него
Вместо
background:transparent;
вставить
opacity:0.5;
не работает, во всех браузерах просто белый цвет как не изменял
В CSS3 есть еще вот такое правило:
Здесь последняя цифра — как раз полупрозрачность (меняется от 0 до 1).
0.5 — половина прозрачности.
В этом примере задан красный цвет фона с полупрозрачностью. Попробуйте этот вариант (правда, опять же, не все браузеры его поддерживают).
Т.е. будет:
ООООООООООООО Дмитрий ни чего не получается даже хуже я и обратно не могу вернуть
теперь фон стал белым и ни как его не изменить
может я вам дам логин и пароль и вы сможете исправить
Отправьте мне на почту [email protected] данные, если не получается самостоятельно поправить. Адрес сайта и логин с паролем.
p.s. в ближайшее время буду занят, но если время освободится, то посмотрю.
Сделал вам вот с помощью этого:
Если нужна большая/меньшая прозрачность, то советую вам подкорректировать последний параметр — сделать его 0.3 или 0.4 (или вообще 0.1, если сильнее нужно).
Дмитрий Спасибо Огромное то что я и хотел
Пожалуйста, если будут еще вопросы, обращайтесь! Но советую вам на будущее тестировать все не на живом сайте, а на локальном компьютере. Поставить WAMP и там уже пробовать, чтобы случайно не сломать живой сайт на сервере)
Дмитрий, спасибо за урок, но у меня не отражаются виджеты в месте, отведённом для сайдбара. Я внесла изменения первым способом, как вы описали.
И действительно, на отдельных страницах весь текст теперь сместился в сторону, давая место сайдбару. Но он пуст((( Правильно отражается только на главной странице. Помогите пожалуйста — я считаю эту тему самой удобной.
Приведите адреса страниц, чтобы посмотреть, в чем дело.
Я поняла в чем дело — аналогично нужно сделать тоже самое с файлом Шаблон страницы (page.php), если хотим видеть боковую колонку на страницах также.
Но теперь у меня другая проблема — после того, как я полностью закончу работу с настройкой сайдбара и закрою сайт … он вновь загружается, а там все настройки «слетели» — сайдбар есть, но текст записи или страницы остается посередине и никуда не сдвигается(((
Возможно, что дело в кэшировании — посмотрите, стоят ли плагины кэширования, если стоят, попробуйте очистить кэш страницы в браузере.
Пасииииб! Вы правы — дело в кэше! Почистила и все сразу отразилось как надо! Зря только на много раз переделывала.(( Спасибо бооольшущеее!
Всегда пожалуйста)
Спасибо, и мне помогло
Добавил Вас сайт в закладки
Спасибо огромное за информацию. Как раз столкнулся с этой проблемой. Повезло нарваться на вашу статью. Все получилось. Еще раз спасибо!!!
Интересная статья, и полезная. Мне помогло, спасибо!
Спасибо, помог первый способ! Только еще и в page.php пришлось вставить код!