Содержание поста в анонсе
Добрый день. Назрела проблема реализации содержания поста, которое будет отображаться не только внутри самого поста, но и в анонсе.
По ссылке ниже можно видеть пример такой реализации.
http://kakpravilnosdelat.ru/rasteniya/
Использую для вывода содержания плагин TOC. Было бы хорошо, если кто подскажет, как сделать такой вариант именно с плагином. Но, если кто знает, как прикрутить содержание в анонс с помощью кода, который предоставлен на этом замечательном сайте, то буду также рад)
Заранее спасибо за помощь.
С уважением, Константин!
Сделать это с помощью моего кода не сложно.
Порядок действий.
подключите оглавление для каждого поста, как написано в примерах
## Вывод содержания вверху, автоматом для всех постов add_filter('the_content', 'contents_on_post_top' ); function contents_on_post_top( $content ){ if( ! is_singular() ) return $content; $args = array( 'selectors' => array('h2','h3'), ); $contents = Kama_Contents::init( $args )->make_contents( $content ); return $contents . $content; }Выведите содержание в цикле для каждого анонса таким кодом:
// этот код нужно использовать в цикле loop, после анонса $args = array( 'page_url' => get_permalink( $post ), // текущая ссылка на статью 'selectors' => array('h2','h3'), // должны совпадать с селекторами для ); echo Kama_Contents::init( $args )->make_contents( $post->post_content );Возможно нужно будет настроить еще какие-то опции, смотрите описание в статье...
Покажите страницу, так гадать я не хочу...
Вот страница записи http://dachnuy-vopros.ru/landshaftnyj-dizajn/sadovye-dorozhki/svoimi-rukami-iz-betona#kcmenu
Вот страница рубрики http://dachnuy-vopros.ru/landshaftnyj-dizajn/sadovye-dorozhki/
Если что, то вот, как я разместил код внутри цикла:
<ul id="list_of_article"> <?php if(have_posts()):?> <?php while(have_posts()):the_post(); ?> <li> <!--noindex--><?php if ( has_post_thumbnail()) { ?><a rel="nofollow" href="<?php the_permalink(); ?>" ><?php the_post_thumbnail('article_main_photo', array('class' => 'alignleft')); ?></a><?php } ?><!--/noindex--> <a href="<?php the_permalink(); ?>" class="article_name"><span><?php the_title(); ?></span></a> <!--noindex--><span class="the_excerpt"> <?php the_content(''); ?><!--/noindex--> </span> <?php // этот код нужно использовать в цикле loop, после анонса $args = array( 'page_url' => get_permalink( $post ), // текущая ссылка на статью 'selectors' => array('h2','h3','h4','h5','h6'), // должны совпадать с селекторами для ); echo Kama_Contents::init( $args )->make_contents( $post->post_content );?> </li> <?php endwhile;?> <?php endif;?> </ul>Насчет ссылки и параметра
page_urlя неправильный код дал... Сейчас переделал немного основной класс используйте его версия 2.9.5. Текущий код должен работать...Насчет того, что при нажатии на одно оглавление сворачиваются/разворачиваются сразу все - это в скрипте сворачивания была недоделка, в описании класса подправил оба варианта сворачивания там версия 0.2 используйте её...
Насчет нерабочего перехода. На странице записи не работает переход потому что ошибка этого скрипта:
$(document).ready(function(){ /* Вешаем событие прокрутки РЅР° РІСЃРµ СЏРєРѕСЂСЏ (#) РЅР° странице */ $('a[href^="#"]').bind('click.smoothscroll',function (e) { e.preventDefault(); var target = this.hash, $target = $(target); $('html, body').stop().animate({ 'scrollTop': $target.offset().top }, 400, 'swing', function () { window.location.hash = target; }); }); });Там нужно было включить вывод анкора как id атрибут, а не как name - для этого нужно поставить параметр 'anchor_type=id'. С версии класса 2.9.5 я этот параметр по умолчанию поставил как id. Поэтому просто обновите класс...
Замените все исходные коды, код вызова менять не надо. Отпишитесь что получилось...
Все супер, заработало) Спасибо вам огромнейшее. И напоследок еще один вопрос. Естественно, что на странице записей более уместно выводить раскрытое содержание, чтобы посетитель его видел и мог сразу воспользоваться, но вот на страницах анонсов это ни к чему. Как сделать содержание свернутым на страницах анонсов? Возможен ли такой вариант?