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




























































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

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

Так вот, я сам было захотел сначала воспользоваться данным способом, но потом пришел к выводу, что этот способ —  «бред сивой кобылы». А что делать если на моем блоге уже под 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 года

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

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

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


А еще Вы можете почитать эти статьи:

  1. Как создать инфопродукт. Принятие решения Сегодня, прочитывая очередной материал по  разным информационным продуктам, коих в…
  2. Как создать gif анимацию. Инструкция как для кухарки Сегодня мы с Вами будем создавать gif анимацию. Итак, для…
  3. Страница в блоге О себе — зачем нужна она мне Уже четыре дня, как я не писал в свой блог…
  4. Комментарии в блоге. Плагин ответа на комментарии ReplyMe Потихоньку я подбираюсь к задуманному,  а именно: разместить у себя…