Бизнес блог Александра Быкадорова

Создать содержание поста в блоге? Как два пальца об асфальт

Содержание текста

Неделю уже не пишу в блог. Весь в делах. Занят развитием еще одного своего проекта. И вот там, я впервые задумался над тем, как сделать содержание в статье на блог или сайт. Пересмотрев статьи коллег блогеров, пришел к выводу — все они сводятся к одному: тупо вставлять код якоря для каждой статьи отдельно.

Всем привет, друзья, на связи с Вами Александр Быкадоров.

Так вот, я сам было захотел сначала воспользоваться данным способом, но потом пришел к выводу, что этот способ —  «бред сивой кобылы». А что делать если на моем блоге уже под 400 постов? В каждый вставлять данный код с якорем? Так и недели не хватит…

Этот вариант не для меня.

Но кто ищет, тот всегда найдет. Я нашел на просторах рунета куда более толковый способ. Итак, встречайте…

Делаем содержание (оглавление) в статье блога или сайта

Рассказывать о том, зачем необходимо ставить на Вашем сайте или блоге данное содержание — я не буду. Это и улучшение юзабилити, улучшение поведенческих факторов и все в том же духе.

С места — в карьер.

Берем этот длиннющий код (качаем по ссылке)

https://yadi.sk/i/Yp4VBFlwg66FY

… и ничего не подтерев и забыв, вставляем его в файл functions.php Вашей темы. Я особо не разбираюсь во всех этих html — ях, вставил данный код в первое приглянувшееся мне место. Единственное, что не надо делать — вставлять код в середину какого либо блока, который отвечает за вывод чего либо.

Как сделать содержание

Как сделать содержание. Редактируем файл function.php через Filezilla

 

В любом случае — вначале делаем бэкап, а потом уже начинаем издеваться над functions.php. Я Вас предупредил, заметьте !

Вставили? Отлично.

Далее я опишу всего лишь один способ вывода нашего оглавления в статьях блога. Причем сразу и во всех!

Данный код необходимо вставить рядом с тем, что мы только что вставили (в файле functions.php):

## Вывод содержания вверху, автоматом для всех постов

add_filter('the_content', 'contents_on_post_top' );

function contents_on_post_top( $content ){

if( ! is_singular() ) return $content;

 

//$args['margin'] = 50;

$args['to_menu'] = 'к содержанию ^';

$args['title'] = 'Содержание:';

$tags = array('h2','h3');

$contents = Kama_Contents::init( $args )->make_contents( $content, $tags );

return $contents . $content;

}

Почему я сразу не написал о том, что эти два кода надо разместить в файле? Объясню сейчас… Дело в том, что через данные код можно делать не только вывод меню, но и так же выводить содержание в том посту, который нам нужен, через шоткод или же, например, можно вывести его в сайтбаре.

А почему бы и нет: содержание поста в сайтбаре… весьма оригинально. Но, тут есть одно но… Так как я сам все это не проверил на этом блоге, то я тут Вам привел только этот способ, который создает автоматически содержание поста в блоге.

После проделанных манипуляций, я обнаружил у себя на блоге сгенерированное готовое содержание, но с «крякозябрами»:

как сделать содержание

Как сделать содержание. Не правильная кодировка

 

Решается элементарно — меняем кодировку (Преобразовать в UTF-8 без BOM), сохраняем, обновляем:

Как сделать содержание статьи

Как сделать содержание. Меняем кодировку в «Преобразовать в UTF-8 без BOM»

 

Все заработало.

Остается только проверить работу данного кода на всех страницах и записях, что я и сделал. Но так, как тема моего блога весьмаааааа не простая, то страницы блога стали выглядеть по уродски и … я код убрал, до выяснения обстоятельств этой проблемы.

Хочу заметить, что данный код формирует содержание из Ваших заголовков h2, h3, причем это делает структурно, т.е. соблюдает вложенность и выглядит это в целом неплохо. Так же хочу заметить, что код не подойдет для коротких постов, ибо там и «оглавлять» то особо нечего, думаю это и так понятно.

Обязательно допишу сюда новости, если будут по теме данного поста.

На другом же сайте (секретном) — все работает замечТательно, без багов, глюков, чего и Вам желаю.

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

Думаю, самое оптимально — закрыть их через <noindex> и не париться… Как считаете, друзья?

Всем пока и хватит составлять содержание через якоря, это жутко не удобно и долго (имхо).

Жду Ваших мысли, господа хорошие )))

Дополнение от 22 мая 2015 года

Вот файлик, который уже доработан другими ребятами — спецами. Он уже содержит такую важную функцию, как закрытие от индексации самого меню содержания. Плюс он проще и понятнее…

Я проверил его работу — все отлично работает, без глюков и сбоев. ПС его полюбила ))) + поведенческий фактор будет на высоте, иначе говоря — Ваш посетитель скажет Вам «Спасибо».

Стили и прочие «украшательства» делаются на свой вкус. Я сделал плавную прокрутку + поменял оформление.

Понравился блог?
Получайте статьи на ПОЧТУ!

О авторе Смотреть все статьи Сайт автора

Александр Быкадоров

Большое спасибо, что читаете мои статьи и оставляете комментарии к ним. Активные комментаторы заносятся на доску почета.
Подробности здесь.
 
Хотите быть первым в курсе новостей, конкурсов на моем блоге?
Подпишитесь на канал RSS для получения новостей, нажав тут.

Комментариев: 35Оставить комментарий

Социальные комментарии Cackle
  • Как сделать содержание — теперь это не вопрос )))

    Ответ
  • Привет Александр!
    На сколько мне известно, есть плагин, который реализует автоматически содержание статьи. (Сейчас не помню как он называется) Так вот..разве не легче установить плагин вместо кода (так еще в файил function.php ???)

    Ответ
  • Игорь, привет. Согласен. Проще…
    Ну у меня (как и у других блогеров) есть твердое убеждение, что плагины (не все) — не есть хорошо. Мол лишний раз грузит блог, лишние обращение к базе данных и прочее…
    По сути все блогеры и делятся по этому критерию на две подкасты ))): кто «за» и кто «против».
    Я лично ставлю плагины лишь в очень крайних случаев, когда не справляюсь…. И вижу, по крайней мере, у себя небольшой бонус в виде прироста скорости загрузки.
    Как «минус» — трудно порою понять, что принесет очередное обновление движка, слетит или не слетит тот или иной код.

    Ответ
    • … чуть не забыл. Когда ставим плагин, я лично реально не знаю, что и куда он прописывает. С кодом я хоть более менее осмысленно понимаю, что и куда приведет.

      Ответ
      • А у меня такой вопрос:
        В последних своих статьях я начал реализовывать содержание статьи с помощью якорей (вручную). Если я сейчас установлю этот код или аналогичный плагин, что произойдет с моими старыми содержаниями?
        Я конечно проэкспереминтирую этот процесс на тестовом блоге, но может быть ты знаешь уже результат? Так сэкономишь мне время :)

        Ответ
        • Я думаю, что пересечений не будет. Т.е. будет создано два содержания.
          Я тоже одно время пытался делать содержание, и что то подобное было реализовано с помощью шорткода на моем втором дизе блога, но потом я все это убрал.

          До жути вымораживало создание их вручную. Тем более, когда у тебя уже есть 100 — 300 постов и приходится ставить на старые посты…
          Сейчас код поставил другой, не тот, что привел в посту.
          Убрал стрелку вверх, которую можно поставить возле каждого подзаголовка, ибо считаю это лишним.
          Есть уже та, «общая», что подымает вверх. Этого достаточно.

          Если надо, могу дать и второй вариант.

          Ответ
  • Видел на нескольких сайтах такое оглавление. Удобно для посетителей и дополнительные ключевые фразы с активной ссылкой.

    Ответ
    • Андрей, привет.
      Это, кстати и насторожило… Сейчас у меня содержание закрыто от индексации, думаю, это более логично.

      Ответ
      • есть смысл закрывать от индексации содержание?

        Ответ
        • Максим, лично мое твердое убеждение, что да — закрывать надо.
          Ибо полный дубликат заголовков — зачем это в посту?
          Мне надо бы разместить новый код, который стоит на данный момент на блоге. Там закрыты от индексации содержания.

          Ответ
    • Андрей, это будет полностью контентный проект, с максимальным уровнем делегирования (фрилансеры, рерайтеры)…
      Очень хочу получить новый опыт.
      Палить его пока не буду, ибо пока хвастаться нечем.

      Ответ
      • Ждем ваш новый проект. А так же, мысли о новом опыте ,когда его получите

        Ответ
        • Месяц прошел, через парочку месяцев я выложу свои первые мысли…

          Ответ
  • Кстати, настроил код таким образом, что он не выводит оглавление в постах, где количество подзаголовков меньше трех…. зачем они там?
    Это вполне логично — код работает там, где это нужно. В маленьком посте трудно «заблудиться», что логично, как и говорил.
    + Решил вопрос насчет закрытия индексации….
    Остался один вопрос на повестке дня: как сделать так, чтобы при переходе по ссылке оглавления, перекидывало не строго на оглавление, а чуть выше… Таким образом оглавление будет чуть ниже и всплывающее верхнее меню не будет перекрывать заголовок, уродую почуть саму идею…
    Пока думаю )))

    Ответ
  • Дополнение двумя позже…

    Код не работает на страницах, как я понял, что мне и надо. Там своя структура. Так что полет нормальный — слежу за обстановкой )))

    Ответ
  • Я недавно задумывался над этим вопросом, как другие делают содержание статей у себя, думал это функция конкретной темы. Подумал и решил пока такого не делать, а то у меня как всегда что-то будет криво. Саша, немного не по теме, подскажи как сделать кнопку «наверх»?

    Ответ
    • Сергей, привет.
      Касаемо моего блога — то она была «вшита» в тему блога, я ничего ни делал для этого.
      В сети есть информация на эту тему, причем как кодом, так и плагинами. Первый вариант предпочтительнее…
      А содержание, я буду тестировать. Уже через пару недель смогу ответить на ряд вопросов по нему.

      Ответ
    • Сергей, самый простой вариант, от этим плагином Buooy Scroll To Top

      Ответ
  • Спасибо! Полезная вещь. Сохранил в закладки, в будущем пригодиться.

    Ответ
    • Рашид, на данный момент, данную фишку я уже реализовал на блоге. Код, правда, поставил другой.
      Сейчас решил потестить. Как будут результаты — обновлю пост и вылажу свое видение.

      Ответ
      • Ссылка в закладках. Позже зайду посмотрю изменения в посте.

        Ответ
        • Отлично, Рашид! Не лишним будет пнуть меня, если через недельку — другую я вздумаю забыть, договорились? ))

          Ответ
  • Хорошая статья, познавательная, для многих новичков самое то. Автору спасибо

    Ответ
    • Максим, доброго времени суток. Я рад был быть полезным!

      Ответ
      • Это видно по вашим статьям и комментариям. Реально, не много сегодня таких блоггеров, которые работают в таком формате. Сейчас, куда не глянь — все шаблоны, все копируют информацию друг у друга…. это очень печально

        Ответ
        • Максим, доброго времени суток.
          Да, есть такое дело. Я и сам иногда слышу подобное в свой адрес. Ну что ж… Я ж не с луны, и могу где то повторяться )))

          Ответ
  • Да, интересная статья, но мне например проще плагином, я их не боюсь. а лезть в коды, можно, но лишний раз не нужно.

    Ответ
  • Кстати ни разу не делала содержание в статье, спасибо за информацию.

    Ответ
    • На другом своем проекте, где посты ну просто требуют этого я проверил работу кода — месяц работы, полет нормальный.
      Так что могу однозначно советовать.
      Кстати, там, на сайте, я поставил несколько другой код… Надо обновить пост.

      Ответ
  • До недавнего времени не делала содержания в статьях. Наверное, пора начинать. Попробую предложенный Вами способ.

    Ответ
    • Юлия, можете сразу брать файлик из дополнения — работает на УРА, проверено!

      Ответ
  • Оригинальный способ создание содержания, подобного я не видел ни в одном блоге. Обычно, код вставляют в каждую статью по отдельности. Вы меня удивили!

    Ответ
    • Андрей, доброго времени суток.
      Я рад тому, что еще одного человека смог удивить)))
      Уже внедрили?

      Ответ

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

Ваш email не будет опубликован. Обязательные поля помечены *