Хотите больше практики? Рекомендую тогда посмотреть мой видеоурок по сайдбарам.
Прежде всего давайте уточним несколько общих моментов про сайдбары:
В обоих случаях предназначение у сайдбаров одинаковое — навигация по сайту, ссылки на социальные сети, виджеты соц сетей, виджеты каких-либо сторонних сервисов (например поиск авиабилетов) и т.д.
Единственное отличие определения сайдбара в WordPress это то, что он может находится где угодно на странице сайта (но чаще всего это боковые колонки справа и слева от контента и футер).
В этом шагу мы рассмотрим пошагово как создать два сайдбара — один в боковой колонке и один в подвале (футере) сайта.
Для начала скажу, что в разных темах WordPress сайдбары регистрируются по-разному, в некоторых ещё до сих пор используется способ 2007-го года. Почему? Да просто некоторые липовые разработчики любят неосознанно копировать код из других тем, их даже не волнует, что тема, которую они используют в качестве своего «на все случаи» шаблона, не обновлялась более 5 лет.
Это я к тому, что код, который я дам вам сегодня может отличаться от кода, используемого в вашей теме — пусть это не станет поводом для волнений, просто замените старый код на новый.
Как я уже говорил, мы будем создавать два сайдбара — в боковой колонке и в футере, в этом нам поможет функция register_sidebar() (если что-то будет непонятно в коде — смотрите документацию функции). Хук widgets_init обязателен!
Код для файла functions.php
:
function true_register_wp_sidebars() { /* В боковой колонке - первый сайдбар */ register_sidebar( array( 'id' => 'true_side', // уникальный id 'name' => 'Боковая колонка', // название сайдбара 'description' => 'Перетащите сюда виджеты, чтобы добавить их в сайдбар.', // описание 'before_widget' => '<div id="%1$s" class="side widget %2$s">', // по умолчанию виджеты выводятся <li>-списком 'after_widget' => '</div>', 'before_title' => '<h3 class="widget-title">', // по умолчанию заголовки виджетов в <h2> 'after_title' => '</h3>' ) ); /* В подвале - второй сайдбар */ register_sidebar( array( 'id' => 'true_foot', 'name' => 'Футер', 'description' => 'Перетащите сюда виджеты, чтобы добавить их в футер.', 'before_widget' => '<div id="%1$s" class="foot widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>' ) ); } add_action( 'widgets_init', 'true_register_wp_sidebars' );
Вот что получилось у меня на странице Внешний вид > Виджеты:
Уже сейчас вы можете добавлять и настраивать виджеты в сайдбарах, теперь осталось только вывести их на сайте.
Как и в случае из первого шага, в разных темах вы можете найти разный код, отвечающий за вывод сайдбаров на сайте. Я рассмотрю только один способ, который использую сам, с использованием функций is_active_sidebar() и dynamic_sidebar().
В двух словах о том, для чего нужны эти функции:
Давайте теперь выведем те два сайдбара, которые мы создавали в прошлом шаге. И начнем с боковой колонки:
<?php if ( is_active_sidebar( 'true_side' ) ) : ?> <div id="true-side" class="sidebar"> <?php dynamic_sidebar( 'true_side' ); ?> </div> <?php endif; ?>
Куда вставлять код? Ну где хотите вывести сайдбары, туда и вставляйте. Не уверены в какой файл? Ну, вообще это полностью зависит от вашей темы, но вероятнее всего, что код боковой колонки вставлять в sidebar.php
, а код футера в footer.php
. Возможно вам ещё пригодится документация функций get_sidebar() и get_footer().
Футер:
<?php if ( is_active_sidebar( 'true_foot' ) ) : ?> <div id="true-foot" class="sidebar"> <?php dynamic_sidebar( 'true_foot' ); ?> </div> <?php endif; ?>
Каждый из нижеперечисленных советов поможет избежать весьма серьёзных багов на сайте, однако, если вы хорошо разбираетесь в PHP и WordPress, ничего нового из этих советов вы не узнаете.
if
и else
можно задать код, который будет выполняться в этом случае:
if ( is_active_sidebar( 'true_foot' ) ) : dynamic_sidebar( 'true_foot' ); else : // код по умолчанию на случай, если сайдбар пустой endif;
function_exists()
для функции dynamic_sidebar() и других функций WordPress. Просто иногда используют. Это ни к чему.include()
или require()
. Чего вы хотите этим добиться? Увеличения производительности? Сомневаюсь, что причина медленной загрузки вашего сайта кроется именно в этом. А для подключения sidebar.php используем специально предназначенную для этого функцию get_sidebar().Если у вас возникнет какой-либо вопрос относительно сайдбаров в WordPress, пожалуйста, оставьте его в комментариях, я постараюсь вам помочь с ним разобраться.
Могу предложить вам пару вариантов решения этой задачи:
functions.php
и sidebar.php
. Этот способ самый действенный. Если же вы не хотите, чтобы после обновления темы все ваши изменения исчезли, используйте дочерние темы.sidebar.php
всё равно придется удалять вручную).Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Спасибо, Миша! Все доступно, понятно и интересно.
В последние время стараюсь как можно меньше использовать сайтбары и виджеты - они создают очень много бесполезных запросов к базе, в больших шаблонах с этим сложно все, сайт ложится даже...
Это зависит от того, кто как управляет сайтом. Я на своем блоге тоже не использую, но для клиентов понятное дело они нужны.
Подскажите пожалуйста, а как в таком случае перерабатывать код сайта, чтобы боковая колонка использовалась без функции сайдбаров и виджетов. Я тоже чую, что такие плагины, как управление сайдбаром подарят мне незабываемые нагрузки, поэтому и нашел вашу статью, как все сделать ручками. Но вот чтобы так, без лишних виджетов вообще. Это было бы здорово!)
Просто найдите в коде сайта те функции, которые описаны в этой статье для регистрации сайдбаров и удалите их :) Искать в
functions.php
иsidebar.php
.Про нагрузки вы зря — это зависит от того, какие именно плагины.
Добрый день!
в Lubith.com создала тему сайта с двумя (слева и справа) сайтбарами...зашла в админ.панель WP, установила эту тему, а левого сайтбара нет!!!((( как мне отобразить его?
Спасибо.
Добрый день!
Обычно такие вещи должны быть либо в настройках темы либо в настройках, которые находятся непосредственно на страницах редактирования постов.
Не могу поменять заголовки виджетов в сайдбаре, а точнее поменять теги h2 на h4.
А что вы для этого делаете?
Я поменял их в коде сайдбара, но изменений не наблюдается
Если вы всё правильно сделали, это должно помочь (по крайней мере для стандартных виджетов WordPress).
Здравствуйте! Сайдбары в футере в админке появляются. На сайте в виде ромбиков текст (как зашифрованный). В чем может быть причина? В style.css нужно что-то прописывать?
Добрый день! :)
Можете скинуть ссылку на сайт?
Первая мысль которая мне приходит в голову - попробуйте поменять кодировку файлов в UTF-8 без BOM (особенно того файла, в котором вы регистрировали сайдбар).
Миша, здравствуйте!
Я разобралась. Просто неправильно немного поставила html код. Спасибо за быстрый ответ. Теперь нужно разбираться с ровным размещением. Ссылку отправила на Вашу почту.
Здравствуйте!
К сожалению никаких писем на почту не пришло.. Папку спама тоже проверял.
Разобрался... Ура...
Здравствуйте, Михаил!
Нигде не могу найти ответ. Может кто поможет. У меня есть блог на WordPress. Поставила там форум через плагин bbpres. Вроде все нормально отображает, но нужно убрать на страницах форума левый сайдбар. Как - то он там не в тему. А сами страницы форума вытянуть по всей ширине блока с контентом. Как это сделать?
Добрый день!
Честно, с bbpres пока не приходилось работать :)
Могу попробовать помочь в принципе, вышлите мне логин и пароль к админке по email.
Спасибо, Миша!
К сожалению не знаю твоей email. Если ответом отправлять письмо на почему - то возвращает.
Вроде разобралась, но еще не совсем. Вот посмотри, может что подскажешь. http://freekreat.ru/forums/.
Сейчас на форумах он подгружает вместо page.php, который по умолчанию грузит - forum.php. Там все нормально страница формируется без сайдбара. Но, сцуко в опере нормально все показывает, а в Mozilla Firefox вся верстка плывет. Даже ослина IE и тот нормально показывает. Может у меня с компом какой глюк?
У меня норм отображается в Chrome, Opera и Safari :) Может в Firefox просто кэш?
Спасибо, помог вылечить :). Все норм. кажет. То я уже снова думаю сидеть шаблон ковырять
Здравствуйте.
Никак не могу нагуглить, как сделать в вордпрессе что бы высота сайдбара всегда была равна высоте основной страницы (если страница выше)?
И соответственно наоборот, что бы основная страница была высотой с сайдбар (если сайдбар выше)?
Попробуйте использовать свойство display:inline-table; к родительскому элементу, оно "делает" из них таблицу, всё выравнивается по высоте большего.
Не работает в ие7.
Другой метод - вложенность. Много лишних div-ов, но метод работает и в ИЕ6.
Вот на Хабре описаны несколько способов: http://habrahabr.ru/post/183542/
Надеюсь Михаил не удалит ссылку.
Здравствуйте! Как-то так:
Добрый день Михаил.
Ответьте пожалуйста, вот у студии RocketTheams в шаблонах есть страницы sidebar-left.php, sidebar-right.php и sidebar-page.php, мне ну очень интересно, возникнуть необходимость может в любой момент, но именно по этому виду создания страниц-шаблонов ничего не нашёл.
Как я понимаю, не только сайд-бар регистрируется, где-то ещё и страницу... регистрируют что ли, не знаю как это называется, но это разное с назначением шаблона через метки и указатели в странице, тут этим и не пахнет.
Объясните, пожалуйста, как эти страницы могут работать и желательно пример.
Благодарю!
Похоже всё проще... настолько проще, даже не верится.
в get_sidebar() параметром указывается имя или переменная с именем, соответствующем имени шаблона, которое написано после тире, вот и всё.
мда...
В любом случае благодарю ))
Рад, что вы разобрались) Успехов!
А если у темы только правый сайдбар, как сделать чтоб и левый то же был..как его туда поставить, именно слева
Обыкновенно.
Имя сайдбара задаёте соответствующее, и пишете команду вывода в блоке под левый сайдбар, соответственно с именем его.
А что за команда? Я знаю как регистрировать его и добавлять разные садбары, а вот как вывести второй слева не знаю. О все равно выводится справа. У меня тема одноколоначная, а менять ох как нехочется. Ведь там дизайн с таким трудом сделан.
А вообще дело это довольно непростое, если ваша тема сама по себе не подерживает два сайдбара (поищите в настройках), то, для того, чтобы добавить второй сайдбар через код, придется не только регистрировтаь его через php, но и переверстывать html.
наконец-то нашел нормальную, адекватную и понятную статью. В закладки !!! СПАСИБО !))))
а как сделать чтобы было не вертикальным а горизонтальным размещение информации на сайт баре?
Возможно мой ответ вас не удовлетворит — при помощи CSS,
float:left
, ну и поменяв расположение элементов. Большу тут и добавить нечего.А как отключить сайдбар только на одной странице?
Ну например для всех, кроме страницы с ID = 5:
Здравствуйте, Михаил.
Скачала немного кривую тему, часто кривизны исправила, но sidebar выводится внизу страницы, а не сбоку. Вот, видите, внизу страницы видео - это сайдбар на самом деле: http://sofia-psy.ru/silnaya-zhenshhina-i-muzhchiny/
В чем может быть проблема, как его вывести сбоку?
Здравствуйте! Тема не немного кривая :)
В общем пара вещей:
.container
и#primary
задайте значение ширины и установите обтеканиеfloat:left
,overflow:hidden
.Спасибо большое!
Миша приветствую, я уже обращался к тебе за помощью, за что и благодарю.
У меня такой вопрос - я хочу поменять шаблон сайта, создал на будстрапе шаблон, ввел его на сайт, вроде все работает кроме двух сайдбаров, при нажатии на рубрику вместо статей появляется белый экран, перелопатил всё, но ошибку не нашел.
Возможно что я что то упустил при их регистрации, но тогда бы виджеты с рубриками не отображались, помоги если можешь, заранее благодарю.
Миша вопрос снимаю, сам нашел ошибку, в наименовании файла.
Миша здравствуйте, снова обращаюсь за помощью, уже задолбался искать ошибку вывода фоток в статьях. В редакторе показывает все нормально, картинки переставляются слева, по центру, справа, а вот на сайте нет, стоят только слева. Помоги пожалуйста.
Здравствуйте! В вашей теме не хватает CSS стилей для обтекания картинок.
Спасибо Миша, да я её нашел. У меня еще один вопрос: Я создал новый шаблон для своего сайта Будстрапе, все работает отлично но на малых экранах, когда сужаю экран до конца, фото в посте не сжимается и вылазит с блока, не могу понять где я недоработал, если в теме, помоги пожалуйста.
На будстрапе
К картинке пробовали класс
если на bootstrape то так.
Это тоже не сработало, по моему тут стилями надо оперировать. Ладно буду экспериментировать сам, спасибо.
Спасибо, Миша. 5 минут (в первый раз регистрирую) и три сайдбара в подвале сайта. Осталось стили оформить. :)
Доброго времени суток!
В шаблоне Esteem сайдбары регистрируются в файле esteem/inc/widgets.php
Сделал все по инструкции, но новых сайдбаров я не вижу в админке.
При этом изменения в текущих я вижу.
Подскажите, может ли где то еще лежать упоминание?
Какие-то странности.
Перед первым сайдбаром, и набрав текст регистрации вручную, только после этого я увидел сайдбары.
Миша, помогите.На школьном сайте в Вордпресс написано: Присвоенное по умолчанию значение равно «sidebar-1». Чтобы убрать это сообщение и сохранить текущее содержимое боковой колонки, задайте вручную параметр id, равный «sidebar-1». Что делать? КАК ИСПРАВИТЬ? Вот вошла я в консоль, что дальше нажимать, Настройки?
Точнее?
Читайте внимательно "Шаг 1".
Андрей, понимаю, что я "туплю", но... Сайт уже существует не один год, сайдбар, естественно тоже, но, после обновления выскочило сообщение: " ....sidebar вызвана неправильно. В массиве аргументов для боковой колонки «Sidebar» не задан параметр id. Присвоенное по умолчанию значение равно «sidebar-1». Чтобы убрать это сообщение и сохранить текущее содержимое боковой колонки, задайте вручную параметр id, равный «sidebar-1». " И теперь невозможно работать в консоли. Что делать-то? Помогите пошагово. Консоль -Внешний вид-Редактор - Да? А потом что? Я меняла на сайдбар1 id, но всё расплылось на главной странице. Помогите.
Я не понимаю, Вам система написала задайте id равный "sidebar-1", вы задаете "сайдбар1".
Естественно все расплывется, система не видит зарегистрированного сайдбара с таким id.
В первом шаге, написано, открываем functions.php, его и редактируем.
Ищите хук widgets_init, внутри будут регистрации, по-идее первый и есть "sidebar-1"
Здравствуйте Наталья. Файл functions.php в студию. Можно на фриланс его отдать.
Попыталась что-то исправить - "угробила" сайт. Вот будет мне взбучка! Теперь вот что вместо сайта: Ошибка разбора : ошибка синтаксиса, неожиданный '' Боковая панель-1 '' (T_CONSTANT_ENCAPSED_STRING) в /var/www/vaychka/data/www/vaychka.68edu.ru/wp-content/themes/spacious-vision/functions.php на линии 5 Что же делать-то мне теперь? Егор подскажите!
Можно ли сайт-то вернуть? Спасибо
Напишите мне на почту jegorfilippov@mail.ru Желательно сейчас :)
Здравствуйте, Михаил! Подскажите, если не сложно
Сайт http://dnevniki.ua/ Требуется: поменять внешний вид как здесь http://dnevniki.ua/wp-content/uploads/2015/05/dnevniki.gif, т.е.:
- Убрать вообще насовсем sidebar, который справа, на всех внутренних страницах и записях. Это та правая часть страницы, где сейчас выведены страницы и категории. Соответственно надо будет и изменить горизонтальный размер страниц и записей.
- На всех внутренних страницах и записях сайта хочу добавить то горизонтальное меню, которое расположено вверху на главной странице сайта под блоком логотипа.
Мпасибо заранее!
Здравствуйте!
Чем вам помочь? Напишите мне по email - всё сделаем.
Добрый день. У меня очень похожая проблема с сайдбаром. "sidebar вызвана неправильно. В массиве аргументов для боковой колонки «Боковая колонка 1»... и так далее". Дело в том, что в wp-includes/functions.php on line 3563 на этой строке нет sidebar. Там написано следующее: trigger_error( sprintf( __( '%1$s was called incorrectly. %2$s %3$s' ), $function, $message, $version ) );
И во всем вайле ни где не упоминается sidebar. Не понимаю как я могу заменить на sidebar-1 если его там нет. Можете мне помочь?
Вы ищите не в том файле. Вам нужно смотреть в function.php ШАБЛОНА.
В крайнем случае поиск по содержимому
Поиск по содержимому того файла ничего не дал. А в functions.php в шаблоне один единственный короткий код и больше ничего:
Не совсем понимаю где нужно заменить sidebar на sidebar-1
Добавьте id
register_sidebar(
array(
'id' => 'sidebar',
Спасибо. Проверю. Только еще один ворос. На некоторых страницах выводится следующее:
Ни в одном из файло functions.php нет get_settings. Где же его найти?
Попробуйте провести поиск по содержимому всех файлов сайта. Тоталкомандер это умеет.
Огромное Вам спасибо! То, что вы посоветовали очень помогло. Заработала админка, а вот сайдбар почему-то пропал совсем ((( Что же делать...
В сайдбаре написано следующее:
В в functions.php следующее:
Понял сам. Нужно было указать 'id' => 'sidebar-1',
Добрый вечер, Михаил! Ваша статья пришлась мне очень кстати! Передо мной как раз стоит задача добавить сайдбар в мой шаблон (изначально есть только правый). Учитывая, что я «не волшебник, а только учусь», я воспользовалась Вашим кодом регистрации сайдбара. Все прошло успешно, он есть на странице виджетов.
Но далее у меня возникают проблемы: я добавила код в single.php и поставила для эксперимента пару виджетов. Виджеты стали отображаться сверху записи, а не справа, как мне нужно. Убрала код и вписала в sidebar.php — виджеты добавляются в правый сайдбар над теми, которые уже есть.
В общем, моя задача: добавить левый сайдбар с корректным отображением на странице. Причем он должен отображаться везде. Можете что-то подсказать? Надеюсь, я ясно изложила свою мысль.
Заранее спасибо.
Здравствуйте!
Просто посмотрите, как добавлен правый сайдбар - по тому же принципу добавьте и левый. Скорее всего придется уменьшить ширину основного контента в CSS.
А добавить нужно в файл sidebar.php? И тогда он будет отображаться везде?
Просто нужно новому сайдбару стили присвоить. Если макет резиновый или адаптивный, то размер контента, скорее всего менять не нужно.
Я вообще по статье Михаила сделал три сайдбара перед Footer и внес их в один файл sidebar-footer.
Вот отрывок одного из сайдбаров
Вам, скорее всего, нужно
поставить выше вывода контента и назначить классу, какой там он у вас
Но не факт, шаблоны то разные.
Здравствуйте.
Интересует следующее: возможно ли только для одной конкретной категории и всех ее статей показывать отдельный сайдбар?
Пробовал в archive.php различные варианты через:
"if ( is_category('2') ) { include 'sidebars/sb-recipes.php'; }".... всегда показывает сайдбар только для категории, но не для ее статей.... в ручную указывать ID статей не вариант, т.к. статей в этой категории могут быть тысячи.... Есть ли универсальный код, скажем типа: если категория 2 + все принадлежащие ей статьи --> подключаем сайдбар2.php
(плагины не интересуют!)
Заранее спасибо!
Добрый день!
Большое спасибо за ответ, однако почем-то сайдбар-2 по-прежнему подключается только для категории.... в статье выводится стандартный сайдбар....
Вот используемый код:
Здравствуйте, Евгений. Я подписан на комменты. Ну как вариант взять плагин для вывода сайдбаров или определенных виджетов разобрать его и посмотреть реализацию, логику и синтаксис.
Вы можете также попробовать вытащить массив всех рубрик поста и потом проверить, принадлежит ли ему рубрика 2, и тогда подключать сайдбар:
Доброй ночи! Подскажите в таком моменте, надо чтобы на сайте был плавающий виджет в боковой колонке, проблема в том, что мы это делаем или плагином или скриптом, но в обоих случаях каждому виджету тогда присваивается id, но если мы посмотрим через tools.pingdom.com то кол-во запросов увеличивается почти в 2 раза, что естественно просто огромное кол-во. Можно как-то присвоить id только одному конкретному виджету или вообще без присвоения сделать виджет плавающим? Пока такого найти нигде не смог((( Заранее благодарю.
Здравствуйте!
А разве присвоение id элементам увеличивает количество http-запросов?
Возможно запросы увеличились из-за того, что установленный вами плагин наподключал своих скриптов?
Я пробовал и без плагина, через скрипт, добавляется вот таких вот около 160 запросов, как только отключаю плагин или убираю скрипт, всё пропадает.
Вот на радикал скрин того что вылазит http://s016.radikal.ru/i334/1508/d4/e3a3b9cd1894.jpg
Да, изначально у меня не прописано %1$s, то есть если через скрипт, то приходится дописывать это.
А что за картинка такая, весящая 0 байт - id.gif ?
Я бы поискал её и удалил (именно из кода, а не на сервере).
Долго искал, не мог её найти, но всё же методом тыка определил, данная картинка, точнее их там 4 получается, id.gif и те 3 ссылки ниже, также ведут на картинки в виде точки, это выводит так тизерка. Но проблема в том, что в плавающем виджете почему-то это всё выводится в среднем 40 раз...То есть если я убираю этот блок плавающий и остаётся блок этой тизерки под статьёй, то они выводятся 1 раз, в неплавающем виджете тоже 1 раз, итого 2 раза, а если виджет становится плавающим, то получается вот такая история. На данный момент на сайте всего 3 виджета, id у них 42, 43, 45, 44 недавно получается удалил 4-й с номером 44, но в админке нет неактивных виджетов, я думал, может оно их все равно где-то как-то видит, и каким то образом в них вставляет? Но только при задании id это происходит, без этого, такого нет. Поэтому вот и вопрос, как задать id одному виджету или создать блок, чтобы только в нём считались виджеты и там был он всего один? Так как проблема где-то в этом(((
Тут нужно смотреть код и разбираться, сходу уже подсказать нечего.
Можете выслать мне на почту, только дело в том, что сегодня после обеда я уезжаю и получается смогу посмотреть только через недели полторы..
Здравствуйте! Может и мне поможете? Хочу слева сделать узкий сайдбар для размещения рисунков-ссылок на интернет-ресурсы. Что нужно делать? При помощи плагина какого или прописывать как выше указано?
Прилагаю рисунок http://s017.radikal.ru/i410/1508/b1/33e16a89ca30.png
Адрес сайта ananichy.by
Тема Socialize Lite.
Прочитал вашу статью ... но боюсь напортачить! Тем более в файле functions.php нет функции register_sidebar() ???!!!
Здравствуйте!
Тут нужно уже править код шаблона, одними только функциями регистрации сайдбара дело не ограничится.
А как это осуществить? Очень нужно ...
Ответа по видиму не будет??!
Блин, в отъезде я был в выходные, елы-палы!
Если не знаете, как добавить колонку в шаблоне сами, обратитесь к разработчику на фрилансе, думаю за 500р вам сделают.
Миша приветствую, есть одна проблема, может ты сможешь помочь а то Гугол выдает не то. В общем я недавно установил на сайт плагин DW Question Answer, он нечто на подобии вопросов/ответов и оказалось что в его текстовом редакторе не работает загрузчик медиафайлов, все бы ничего но этот злосчастный загрузчик не работает и на других плагинах, КонтактФорм 7 и еще на одном который я использую для бесплатных объявлений на сайте, в общем нигде не работает, проверил. Я отключал все плагины и скрипты и по очереди подключал, думал где то конфликт но результат это не дало, ошибку я так и не обнаружил. Миша если ты сталкивался с подобной проблемой помоги пожалуйста или посоветуй к кому обратиться. Заранее благодарю.
Приветствую!
А помимо отключения плагинов тему меняли на стандартную?
Здравствуй Миша, спасибо за ответ. Тему я не менял потому что на тестовом сайте все работает, открывается библиотека с фотографиями и я могу загружать их оттуда или с компа. Не знаю можно ли сюда вставлять адрес сайта но я сейчас скину, может так лучше сможешь понять проблему, правда у тебя значок загрузки медиафайлов наверное пропадет, у меня он находится слева над текстовым полем.
Вот адрес страницы: http://zakarpat-tour.com/dobavit-obyavlenie Посмотри пожалуйста возможно ты как профи быстрее увидишь ошибку.
А может с хостингом что? По моему где-то встречал такую неприятность.
С хостингом не может быть проблем, я же написал что на тестовом сайте все работает а он на том же хосте
О, тупанул, мне показалось, вы про админку.
Если вы говорите, что на тестовом всё ок, тут нужно просто открыть исходный HTML обоих сайтов и сравнить, что не так.
Приветствую Миша, для этого редактора я создал отдельный файл так как буду устанавливать еще один для других целей когда этот заработает нормально. Я его устанавливал и на базовом шаблоне, думал что проблема в файле, оба файлы и базовый и созданный отдельно идентичны, просто у этого что с редактором, свои стили. Не могу никак понять в чем причина, почему так происходит, уже несколько раз все перелопатил, может где то что то не так настроил в Вордпрессе, хотя проверял, вроде все нормально, может в стилях что то не так, хотя и здесь не уверен.
Извини Миша что гружу тебя, есть еще одна деталька, в настройках плагина есть выбор форматирования текста, простой текст, ХТМЛ и еще что то, так вот, если я переключаю на ХТМЛ то под иконкой загрузчика и над текстовым полем появляется рамка, но пустая. На текстовом сайте в том месте появляются иконки форматирования текста.
Приветствую,
вы неправильно поняли, сравнивать нужно не файлы с кодом, а результат, уже сгенерированные страницы.
Здравствуй Миша, я и не сравнивал файлы, просто на тестовом сайте базовая страница а на рабочем выводится отдельным файлом, но я подключал и к базовой - результат ноль.
:) Всё ясно! Вопрос закрыт! Больше не побеспокою! Удачи! :)
А что, прикольно часа 2-3 в коде чужом за бесплатно копаться, сайдбары выводить? Как думаешь, Александр?
Вопрос: у меня на сайте есть страницы, рубрики (со списком постов), и посты - так вот сайдбар можно вывести везде, кроме рубрик - это особенности моей темы или в вордпрессе так продумано, что именно в рубрике со списком постов нельзя выводить сайдбар?
Здравствуйте, что то я не понял вопроса, у вас какой файл выводит рубрики?
content-post.php
На странице рубрики (на которой выводятся Заголовки всех постов), невозможно отобразить сайдбар.
Кажется я разобрался, поправьте меня если не так:
нужно рубрику прикрепить к странице - верно?
Вы наверное не можете его вывести потому что в файле content-post.php не заданы размеры блока с заголовками постов, для сайдбара же нужно место, если оно не задано то он и не выведется
Добрый день! Вы разобрались?
Особенности темы.
Вам нужно вручную добавить вывод сайдбара в файл
category.php
, либо, если такого файла нет, то вarchive.php
, либо даже вindex.php
(это опять-таки зависит от вашей темы).Да, разобрался - в настройках прикрепил рубрику к странице и всё заработало =)
Добрый ночи, Михаил.
Отличная статья и практически все получилось за исключением вывода сайдбара в нужном месте... Почитал комментарии, подобный вопрос был у Сплетницы, но как понял он так и не решился. Суть проблемы - есть шаблон с правым сайдбаром, с помощью вашей статьи подключил, вывел сайдбар, настроил стили, но он выводится правее правого сайдбара, а должен быть слева.... Егор в той дискуссии советовал назначить класс
не помогает.... класс, конечно прописал свой...
Буду благодарен за помощь.
Доброй ночи!
Если я правильно понимаю, у вас уже есть сайдбар справа и нужно добавить еще один слева.
Прежде всего хочу сказать, что не любой код подойдет для этого (например код моего сайта не подошел бы).
Какие сайты подходят, а какие нет? В основном это касается адаптивных сайтов с резиновой версткой.
А вообще эта задача состоит из двух частей:
Миша приветствую, нужен твой совет. Я отсутствовал две недели, по приезде зашел на свой сайт и обнаружил что в выпадающем меню не работают ссылки на рубрики, страницы, именно в выпадающем, остальные менюшки работают, в общем перестали быть кликабельны, не могу понять почему хотя зашел через Мазилу все работает как надо, знакомых попросил посмотреть на гугле, у них так же все нормально. Что это может быть, что то с моим гугол хромом или что то другое, можешь дать совет как устранить эту проблему, заранее благодарю.
Привет!
Кидай ссылку сюда, гляну. Кэш весь почистил?
В том то и дело что сайт отображается нормально во всех браузерах и на других компах, только на моем косячит, даже если скину ссылку ты ничего не увидишь.
Попробую очистить КЕШ гугла, посмотрю что будет
Здравствуй, Миша. Блин, популярная статья, пока прокрутил вниз... :) У тебя сверху, где мета, под названием статьи, две даты выскочило.
И вопрос, правда не по теме, ты сайты делаешь на фреймворке, или свой используешь? Просто я посмотрел фреймворки, там лишних функций много.
Привет!
Дата публикации и дата последнего обновления :)
Много это ещё мягко сказано,
иногда просят помочь с такими сайтами — помогаю, хоть и не очень охотно.
Просто в Opera криво смотрится. Я бы скрин скинул, некуда
У меня в Opera вроде норм. Да залей куда-нибудь и ссылку сюда вставь.
А я пока в php не могу сам писать сложные функции, тупо взял тему TventyTvelve стили удалил, добавил сетку bootstrap, а с фреймворка выдернул кастомайзер и в зависимости что нужно клиенту в кастомайзере оставляю.
Миша, не подскажешь как к ссылкам в сайдбаре добавить микроразметку itemprop="url" ?
Я фильтром хотел, но что-то пошло не так.
Подскажи пожалуйста.
По-моему для этого лучше свой виджет написать.
Вот скрин, Миша. Или так и задумывалось? https://yadi.sk/i/rR63dF70koM6W
Задумывалось :)
Здравствуйте. У меня боковая колонка отображается не сбоку а сверху. Я сделал всё как написано, но я так понимаю что-то не так в моей теме. Не подскажите что это может быть? Сайт http://ukronews.ru/ на главной странице всё нормально, проблема в том что когда заходишь на какую-нибудь новость то сайдбара нет, а если я его устанавливаю, то он отображается вверху страницы.
Здравствуйте!
У меня везде — порядок. Уже разобрались?
Только что, благодаря вашему комментарию я понял, у меня адаптивный дизайн, а разрешение на мониторе низкое, вот он мне не там и показывал. Зашел с другого - все хорошо. Спастбо)
Извините за беспокойство)
Здравствуй, Миша. Сейчас в WordPress 4.4 новая функция появилась
для проверки зарегистрированных разделов для виджетов. Правда незнаю, будет ли считаться
устаревшей.
Как в виджетах функция Wp_widget
Привет!
Отличие этих двух функций в том, что
is_registered_sidebar()
проверяет, зареган ли сайдбар вообще, аis_active_sidebar()
— добавлены ли в него виджеты.Здравствуйте, Михаил. Подскажите, пожалуйста, может ли быть в теме заблокировано отображение сайдбара? Просмотрел кучу статей, опробовал все предложенные варианты и Ваш в том числе. Но сайдбар никак не хочет отображаться на сайте. Что можете посоветовать? Спасибо!
Здравствуйте,
расскажите по порядку, что вы делаете.
1. В functions.php вставил код
function true_register_wp_sidebars() {
/* В боковой колонке - первый сайдбар */
register_sidebar(
array(
'id' => 'true_side', // уникальный id
'name' => 'Боковая колонка', // название сайдбара
'description' => 'Перетащите сюда виджеты, чтобы добавить их в сайдбар.', // описание
'before_widget' => '', // по умолчанию виджеты выводятся -списком
'after_widget' => '',
'before_title' => '', // по умолчанию заголовки виджетов в
'after_title' => ''
)
);
/* В подвале - второй сайдбар */
register_sidebar(
array(
'id' => 'true_foot',
'name' => 'Футер',
'description' => 'Перетащите сюда виджеты, чтобы добавить их в футер.',
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => ''
)
);
}
add_action( 'widgets_init', 'true_register_wp_sidebars' );
2. В sidebar.php удалил весь код и втавил
3. В админке появился пункт Виджеты, зашел в него добавил необходимые виджеты, но на сайте они не отображаются.
Здравствуйте.
Я вот уже давно бьюсь над тем как в сайдбаре выводить произвольные поля.
И еще этот сайдбар выводить не в начале статьи а где-нибудь в середине.
Может Вы подскажете?
Здравствуйте!
А в чем заключается проблема с произвольными полями?
Здравствуйте, Миша.
Спасибо, что отзвались.
Проблема в том что произвольные поля В СЕРЕДИНЕ ПОСТА не выводятся.
То есть если насовать коды в header.php то все работает, но нужно выводить именно где-то между абзацами текста.
Ведь не очень красиво когда шапка поста забита фотками, картами, кнопками, а дальше идет большой текст практически голый.
Поэтому в статье в нужных местах мне нужно выводить код Адсенса, кнопки, фотки и другие произвольные поля.
Например один шорткод выводит адсенс, другой - 3-4 кнопки со ссылками разными для каждой страницы + фото или спутниковую карту.
Например в статье про Москву кнопка "карта" выведет карту Москвы, а в посте про Питер такая же на вид кнопка выведет карту Питера.
Почему не вставить код прямо в страницу? Во-первых громоздко.
Во-вторых, код кнопок при редактировании страницы и переходе из текстового режима в визуальный исчезает.
Пример кода - <a href="http://sait.ru/karta-barselony/"> </a>
Кроме того сли вставить где-нибудь между абзацами текста ID, 'karta', true); ?> то произвольное поле тоже
не выведется. Кстати если его вставить в виджет - тоже.
Задумал я сделать так - весь код произвольных полей (штук 5)с классами, размерами полей и т.д. забросить в отдельный файл (например
pole.php).
вставляю в статье где нужно шорткоды (2-3 штуки), шорткоды выводят содержимое pole.php т.е. произвольные поля.
А в "значении" каждого произвольного поля в каждом посте вписываю типа a href="h t t p://sait.ru/avto/" class="karta" и т.п.
Что я сделал.
В functions.php вставил код
И в шаблон закинул файл pole.php
Если в этот файл вставить код Адсенса, то он отлично выводится шорткодом [ch-s]
А вот как вывести произвольные поля?
Вставленный в pole.php код ID, 'pole_1', true); ?> не канает.
Дали мне совет, что надо сперва прочитать содержимое файла pole.php в переменную при помощи какой-нибудь php функции, а затем выводить
уже эту переменную. Но для меня это темный лес.
Я вообще не знаком с php, поэтому мои мучения оказались напрасными.
Была уже мысль отказаться от всего перечисленного выше и использовать обычный сайдбар, а в его виджеты уже совать кнопки т.д.
Но как через виджет вывести произвольное поле?
Кроме того из-за сайдбара ширина спутниковых карт в статье будет намного меньше.
Такая вот задача...
В прошлом сообщении из текста исчезла часть кода вывода произвольных полей
Здравствуйте, с Наступающим!
Внутри шорткодов используйте
global $post;
для получения ID поста.А как его использовать? Можете привести пример?
Да просто вставляете в самое начало функции шорткода.
Михайл, подскажите пожалуйста как разместить два разных сайдбара друг под другом?
Вожусь очень долго уже, никак не выходит. Цель: выводить второй сайдбар не везде.
Первый подключен так:
Functions php:
single php:
Примерно следующим образом, functions.php:
А потом один под другим:
Михаил, спасибо за отклик!
Я думаю из-за особенностей моего шаблона, в админке оба сайдбара видны только если подключаю их так:
functions.php
а вот дальше проблема, оба удалось вывести только так:
single.php
но тут, основной отображается на положенном месте, а вот дополнительный только над основным контентом... вордпресс не видит id=sidebar-extra
сдается мне нужно колдовать с sidebar.php
Спасибо за идею, колдую дальше.
Ну
get_sidebar()
именно задействует файлsidebar.php
, аdynamic_sidebar()
вставляет уже само содержимое сайдбара с виджетами.Чтобы всё работало корректно, нужно уже разбираться в зависимости от кода темы, т е индвидуально.
А
get_sidebar( 'Sidebar' );
соответственно задействуетsidebar-Sidebar.php
.или может создавать отдельный файл sidebar-extra.php?
Здравствуйте Миша. Я совсем ещё чайник, создал сайт на вордпрес попытался зарегистрировать сайдбар вставил код в functions.php , но у меня появился белый экран с ошибкой (Parse error: syntax error, unexpected '<' in /home/p349003/www/links27.ru/wp-content/themes/responsive/functions.php on line 44) и теперь я не могу зайти на сайт. В чём может быть проблема и как её решить? Спасибо.
Здравствуйте!
А вы откройте functions.php и удалите этот лишний символ :)
Добрый день.
Как отключить сайдбар для форума bbpress? Область форума получается слишком узкой, поэтому требуется отключить сайтбар и растянуть форум с помощью css. Дело в том, что форум выводится не как страница и обычным методом отключения сайдбара на определенной странице - не получится.
Заранее благодарен за ответ.
Это первый сайт в сети про ворпресс который описывает подробно на понятном языке для людей.. а не для разработчиков с двадцатилетним стажем.
добавляю в избранное.
Благодарю :)
Здравствуйте Михаил!
Отличная статья!
Хотелось бы Ваше мнение услышать по использованию виджетов. Подозреваю, что они грузят сайт. Мой блог открывается менее 2 сек. на мобилах, но сервис Гугла ругается и выдает только желтую зону.
Как Вы считаете, если заморочится, отключить виджеты и прописать просто html код в сайдбарах, увеличится ли скорость загрузки, и намного ли???
У меня на блоге с 10 своих шаблонов, под каждую рубрику, а то и под определенную запись, стоит ли заморачиваться?
И еще вопрос по графике (немного не в тему), раз уж Вы себя подаете, как эксперт.
Сервис Гугла по замеру скорости, в основном ругается на графику (вся графика сжата и используется отложенная загрузка), Гугл предлагает использовать современный формат изображений, но я читал, что еще не все браузеры поддерживают данный формат.
Каково Ваше мнение по новым форматам графики, на сегодняшний день все ли браузеры открывают данный формат, как поддержка на мобильных - старых версиях андроида и айфона, можно ли грузить современный формат, и как альтернативу jpg для старых версий браузеров, если можно, то с примером кода и таких сайтов???
Заранее спасибо за развернутый ответ!
Добрый день Станислав,
Спасибо!
Прежде всего хочу обратить внимание, что желтая зона гугле не является фактическим показателем загрузки сайта и ответа сервера. Если у пользователей вашего сайта быстрый интернет, а таких я думаю в наши дни всё больше и больше, то достаточно лишь убедиться, что сервер быстро выдаёт ответ, а это оптимизация со стороны PHP / плагинов / темы. Если у вас изображения не весят около 1мб, то уже и для медленного интернета всё будет вполне приемлемо.
На вашем месте, если у вас есть другие, более важные задачи и в вашу цель не входит глубоко разбираться в вопросах оптимизации, я бы не заморачивался этими вопросами.
По поводу виджетов – не влияет. Но тут конечно зависит от того, что вы в них захотите добавить,
Добрый день! Подскажите как добавить на сайт на WordPress в теме Twenty Nineteen колонку с выбранными страницами. Все виджеты и плагины добавляют только в подвал, а мне нужно сбоку
Здравствуйте, создаю сайдбары с разными категориями товаров но либо выводятся все категории в сайдбаре, либо один и тот же сайдбар чудесным образом заменяется другим, не те какой я прописал на странице page.php. подскажите что делаю не так
Здравствуйте, а как вы выводите сайдбары?