Якщо говорити з погляду SEO-оптимізатора, то карта сайту - це важлива ланка при просуванні сайту в пошукових системах. Завдяки її наявності боти мають доступ до всіх ваших постів, сторінок сайту та інших типів постів за допомогою однієї лише сторінки.
Дивіться також:
У прикладі нижче можна побачити, як це виглядає. На одній сторінці розміщені списки всіх розділів сайту, кожен з яких можна розгорнути одним кліком та отримати список постів із датами їх публікацій. За допомогою цього методу можна додати будь-який тип поста користувача до карти сайту.
У цьому невеликому уроці я покажу вам, як створити таку карту сайту для WordPress без застосування плагінів.
Якщо ви хочете створити карту сайту WordPress без використання плагінів, зробіть таке:
Скопіюйте файл page.php у темі оформлення вашого сайту та збережіть його як карта сайту.php (всі дані будуть відповідати темі, що використовується вами, включаючи розташування елементів, бічної панелі тощо), а потім вставте цей фрагмент коду на самому початку файлу:
<?php /* Template Name: Sitemap */ ?>
Тепер додаємо скрипт JavaScript, який відповідає за те, щоб розділи на сторінці карти сайту можна було розгорнути одним кліком:
<script type="text/javascript"> $(document).ready(function () { $('#toggle-view li').click(function () { var text = $(this).children('div.panel'); if (text.is(':hidden')) { text.slideDown('200'); $(this).children('span').html('-'); } else { text.slideUp('200'); $(this).children('span').html('+'); } }); }); </script>
А цей код відображатиме всі ваші пости та сторінки на карті сайту:
<ul id="toggle-view"> <li> <h2>Posts</h2> <span>+</span> <div class="panel"> <ul> <?php $myposts = get_posts('numberposts=-1&offset='.$debut); foreach($myposts as $post) : ?> <li class="sitemap"><?php the_time('d/m/y') ?>: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul> </div> <?php //endwhile; ?> </li> <li> <h2>Pages</h2> <span>+</span> <div class="panel"> <ul> <?php $myposts = get_posts('numberposts=-1&post_type=page&offset='.$debut); foreach($myposts as $post) : ?> <li class="sitemap"><?php the_time('d/m/y') ?>: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul> </div> </li> </ul
Ви можете додати будь-яку кількість типів постів, використовуючи цей код. Для цього потрібно буде замінити слово POSTTYPENAME (назва типу користувача посту) у двох місцях на потрібний вам тип запису:
<li> <h2>POSTTYPENAME</h2> <span>+</span> <div class="panel"> <ul> <?php $myposts = get_posts('numberposts=-1&post_type=POSTTYPENAME&offset='.$debut); foreach($myposts as $post) : ?> <li class="sitemap"><?php the_time('d/m/y') ?>: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul> </div> </li>
Тепер трохи прикрасимо це все. Використовуйте цей код у файлі style.css для створення привабливого вигляду розгорнутих постів у розділах на сторінці карти сайту:
#toggle-view { list-style:none; font-family:arial; margin:0; padding:0; } #toggle-view h2 { border-bottom:0px; margin-top:15px; margin-top:30px; } #toggle-view h2:hover { color:#ff0000 } #toggle-view li { margin:0px; border-bottom:1px solid #ccc; position:relative; cursor:pointer; list-style-type:none; padding-left:15px; } #toggle-view span { position:absolute; left:0px; top:0; color:#bdbdbd; font-size:28px; font-weight:bold; } #toggle-view span:hover { color:#ff0000; } #toggle-view .panel { margin:5px 0; display:none; }
І останнє, що вам потрібно зробити, - це створити сторінку для розміщення карти сайту. Для цього перейдіть в Консолі WordPress у Сторінки → Додати нову. Дайте будь-яку назву сторінці та додайте потрібний контент. Після цього в бічній панелі виберіть меню Атрибути сторінки створений шаблон Карта сайту зі списку, що випадає.
Коментарі до запису: 12
Створив Sitemap за цією статтею. Чудово все працює. Можете перевірити на цьому сайті
немає у вас жодної карти
трафік заманюєте собі
Дякую! Легко, зрозуміло і добре вписалося у тему. Щоправда, я без скрипту використовую
А чи потрібно у карті розбивати статті за категоріями? І взагалі, чи потрібно додавати категорії?
Дякую за статтю! А ви не пробували плагін для створення карти сайту hierarchical html sitemap? Розробники стверджують, що він не використовує жодних зайвих скриптів та стилів, мовляв, немає різниці ставити плагін або самому писати код.
Ні, цей плагін не пробували.
html і XML - це все-таки різні речі та призначення у них трохи інші. Чи я не правий? Зараз мене цікавить питання актуальності html-карти. Потрібна вона?
Як ваш варіант карти поводиться при видаленні сторінок, постів і т.д. Видаливши статтю вона вилучиться з sitemap?
"Notice: Undefined variable: debut in ..." - шо за $debut такий?
Відмінно працює цей код. Нарешті зробив карту сайту :-)
Так дійсно змінної $debut не існує, код звідкись скопійовано.