Автоматически делаем теги в статьях ссылкой или выделяем ключевые слова

Опубликовано: 01.09.2018

Каждый веб-мастер, хотя бы на базовым уровне, знаком с оптимизацией сайта. Это на самом деле очень тонкая работа, так как в ней всегда будет больше разногласий чем в любой другой. Тут не может быть на 100% устойчивой позиции в любом из вопросов. Даже если руководствоваться всеми рекомендациями поисковиков, то результат не всегда дает должный эффект. В то время как какой-то ужасный сайт (содержащий кучу копипаста, плохое оформление и прочее) находится в Топ выдачи, опередив более качественных конкурентов.


Парсинг товаров с сайтов интернет магазинов с помощью Netpeak Spider

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

Также на многих сайтах выводятся теги или как еще их называю метки. По сути это один из способов сортировки статей. В них содержатся ключевые слова, по которым можно найти связанные записи, что-то вроде рубрик. Но они могут относиться и к внутренней оптимизации, повышая внутренние переходы по сайту. Поисковики учитывают этот фактор и оценивают контент, а значит и сайт, как полезным, так и интересным.

К чему все это?

Из сегодняшней статьи узнаем, как автоматически сделать теги ссылками в статьях. То есть слова, которые совпадают с названием тега будут преобразованы в ссылки. При наведении мыши на такую ссылку выводится тайтл «Показать все записи с тегом таким-то» и, естественно, по клику открывается страница с указанным тегом.

Откройте файл functions.php вашей текущей темы и в конце перед знаком ?> добавьте следующий фрагмент кода:

$match_num_from = 1; $match_num_to = 2; function tag_sort($a, $b){ if ( $a->name == $b->name ) return 0; return ( strlen($a->name) > strlen($b->name) ) ? -1 : 1; } function tag_link($content) { global $match_num_from,$match_num_to; $posttags = get_the_tags(); if ($posttags) { usort($posttags, "tag_sort"); foreach($posttags as $tag) { $link = get_tag_link($tag->term_id); $keyword = $tag->name; //Подключение функции $cleankeyword = stripslashes($keyword); $url = "<a href=\"$link\" title=\"".str_replace('%s',addcslashes($cleankeyword, '$'),__('Показать все записи с тегом %s'))."\""; $url .= ' class="tag_link"'; $url .= ">".addcslashes($cleankeyword, '$')."</a>"; $limit = rand($match_num_from,$match_num_to); $content = preg_replace( '|(<a[^>]+>)(.*)('.$ex_word.')(.*)(</a[^>]*>)|U'.$case, '$1$2%&&&&&%$4$5', $content); $content = preg_replace( '|(<img)(.*?)('.$ex_word.')(.*?)(>)|U'.$case, '$1$2%&&&&&%$4$5', $content); $cleankeyword = preg_quote($cleankeyword,'\''); $regEx = '\'(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s' . $case; $content = preg_replace($regEx,$url,$content,$limit); $content = str_replace( '%&&&&&%', stripslashes($ex_word), $content); } } return $content; } add_filter('the_content','tag_link',1);

Обратите внимание на две первые строки:

$match_num_from = 1; $match_num_to = 2;

Эти параметры задают диапазон замен, который потом случайным образом меняется. То есть если указать, например, 1-5, то будет сгенерировано случайное число от 1 до 5, и будет произведено такое же количество замен в тексте. Рекомендуется 1-2.

Источник:

rss