В посте про рост трафика через перелинковку, мы с вами заметили, что эффективнее было бы делать ссылки для каждого поста постоянными, а не раздавать каждый раз рандомно, однако это сопряжено с рядом трудностей. Вот лишь некоторые из них: ID постам даются не попорядку, многие записи не являются постами, а представляют различные ревизии, черновики и т.п.
Давайте теперь решим эту задачу. В очередной раз предупреждаю: я не программист, поэтому код может быть некрасивым, неизящным, но, зато он выполняет то, что требуется.
Выход очень прост: создадим в mySQL таблицу из 2 х полей id и links
CREATE TABLE IF NOT EXISTS `wp_perelink` (
`id` int(10) NOT NULL,
`links` varchar(1000) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8; В id соберем id всех постов, которые опубликованы, в links для каждого поста запишем индивидуальный блок ссылок, например так:
$links = file("links.txt");
$li=0;
$sql = "SELECT * FROM `wp_posts` WHERE `post_status` = 'publish' AND `post_type` = 'post'";
$result = mysql_query($sql);
while($data = mysql_fetch_array($result))
{
$sql="INSERT INTO wp_perelink (`id`, `links`) VALUES ('".$data[ID]."', '".$links[$li]."')";
mysql_query($sql);
$li++;
} В данном примере каждому посту будет присвоен блок с одной ссылкой из файла links.txt.
Теперь выведем ссылки в посте, добавив в single.php
<? global $wp_query; $postid = $wp_query->post->ID;
$sql = "SELECT * FROM `wp_perelink` WHERE `id` = ".$postid;
$result = mysql_query($sql);
$array = mysql_fetch_array($result);
print $array[links];
?>
Итог: блок ссылок перелинковки на каждом посте теперь постоянный. Минус — дополнительный запрос к базе данных при выводе поста, но это нивелируется кэшированием блога.
По итогам поста про правильный подбор ключевых слов и про переликовку с помощью этих слов уже начали приходить позитивные отзывы о прекрасных результатах, достигнутых с использованием данных рекомендаций, вот например один из читателей поднял посещаемость и количество заказов с интернет магазина в 2 раза!

