|
Недавно я заметил, что не все страницы моего сайта проиндексированы Яндексом (в частности). Я бы очень хотел исправить это положение дел.
Идея очень простая: создать карту сайта, где есть ссылки на все страницы сайта. Ведь «золотое правило» – правило трех кликов (чтобы любую страницу сайта можно было найти, сделав всего 3 или меньше кликов от главной страницы). Ну тут и получается – первый клик на карту сайта (ссылка на нее находится на главной странице), а второй клик – на саму статью.
Карта сайта по сути должна представлять из себя просто напросто перечень ссылок на все статьи. В общем-то, не обязательно, чтобы анкорами ссылок были названия статьей – важны сами ссылки как факт.
Перейдем к практике.
Все статьи WordPress’а находятся в таблице wp_posts. То есть – нужно просто выдрать данные оттуда.
Это сделать довольно просто и понятно, но есть одна заминка. У меня не вышло использовать одну и ту же карту сайта для разных блогов на WP – в первом случае URL’ом статьи был ее ID, подставленный в somesite.ru/?p=ID, а во втором ID не играл никакой роли и URL хранился самостоятельно в отдельном поле таблицы (guid).
Ну и еще одна тонкость – нужно выдавать ссылки только на те статьи, которые уже опубликованы и те, которые являются статьями. Последнее, возможно, звучит странно :) Объяснение – WP зачем-то хранит в wp_posts еще и «аттачи» (приложенные файлы) к статьям и еще всякую дребедень.
Теперь исходный код карты сайта на PHP. Понимающему человеку не составит труда разобраться и преобразовать этот код к нужному ему виду.
mysql_connect («хост», «логин», «пароль»);
mysql_select_db («имя базы данных»);
$q = mysql_query («SELECT * FROM wp_posts WHERE post_type=’post’ AND post_status=’publish’;»);
while ($str = mysql_fetch_array ($q)){
echo «<a href=\»".$str['guid'].»\»>».$str['post_title'].»</a><br>»;
}
Как видно из кода: запрос делается в wp_posts, выбираются только те записи, которые являются статьями (post_type=’post’) и (AND) уже опубликованы (post_status=’publish’). Дальше тупо выводятся ссылки. Тут тоже замечу – возможно, строить URL Вам придется иным способом (здесь же URL хранится в поле guid и я его просто вывожу).
Оставьте свой комментарий
|
20.05.2008 в 9:46 пп
21.05.2008 в 1:46 дп
Пустой коммент – это круто, да )
08.06.2008 в 10:24 пп
[...] интернет на понятном языке. Карта сайта « Создаем карту сайта для Word Press Лохотрон в сети (не попадайтесь!) [...]
09.06.2008 в 12:27 дп
Для таких целей существуют плагины, к примеру google-sitemap-generator.3.0.3.3 – для ВП …. сам пока не пробовал, но не думаю, что там будет сложней создать такую карту …
09.06.2008 в 12:32 дп
Ага. И смотрим на название – гугл-сайт-мап. Яндекс ее еще не хавает. И вообще… Это же блог программиста. Я все предпочитаю делать сам :)
18.07.2008 в 1:53 пп
Вроде нормально яндекс гугловскую сайтмапу хавает. А ещё есть плагинчик DagonDesign Sitemap Generator. Очень прикольная вещица для тех кто программировать не умеет. :wink:
07.04.2009 в 5:23 пп
Админу респект за то, что все показывает на реальном коде. Парой это бывает полезней, чем пользоваться чем-то готовым! Поэтому так держать ;) А можно и не только держать, но и сходить на мой сайтец по !информационным технологиям!. Ссори за рекламу :(
DimoninG: А не надо за рекламу извиняться. Просто не надо ее публиковать. И ссылки в никнейме, так любезно предоставленные мной, вполне хватит.
26.06.2009 в 11:06 пп
Спасибо за статью … Но, воспользовался генератором DagonDesign Sitemap Generator , но работает как-то корявенько … Ушел искать пути решения проблем, не подскажете ?
15.02.2010 в 6:50 пп
Хорошо все расписано, но вот у меня такая проблема:
На сайте используется плагин qTranslate, в карте сайта не отображаются английские записи…
Как быть?