Использование данных плагина All in One SEO Pack
Вдогонку к статье о плагине All in One SEO Pack расскажу, как использовать данные этого плагина (заголовки) в плагинах Dagon Design Sitemap Generator и PS Auto Sitemap (в генерируемых картах сайта этих плагинов будут использованы заголовки, прописанные вами в плагине All in One SEO Pack).
1 Dagon Design Sitemap Generator
Откройте файл плагина sitemap-generator.php и найдите строчку:
573 | $t_out .= '<li><a href="' . get_permalink($post_data[$p]['id']) . '"'; |
Вставьте перед этой строчкой код:
572 573 574 | $mytitle = htmlspecialchars(stripcslashes( get_post_meta($post_data[$p]['id'], '_aioseop_title', true))); if ($mytitle != '') {$the_title = $mytitle;} |
Этот код сработает только для записей, а для страниц надо сделать еще одно небольшое изменение в файле sitemap-generator.php. Найдите строчку:
469 | $t_out .= '<li><a href="' . get_permalink($page_data[$p]['id']) . '"'; |
Вставьте перед этой строчкой код:
468 469 470 | $mytitle = htmlspecialchars(stripcslashes( get_post_meta($page_data[$p]['id'], '_aioseop_title', true))); if ($mytitle != '') {$the_title = $mytitle;} |
Собственно, на этом все - теперь в карте сайта от плагина Dagon Design Sitemap Generator будут выводиться заголовки, прописанные вами в плагине All in One SEO Pack. Если вы не прописывали для какой-то записи или страницы заголовок, то будет использован обычный заголовок.
2 PS Auto Sitemap
Откройте файл плагина ps_auto_sitemap.php и найдите строчку:
233 | foreach( $category_posts as $post ) { |
Вставьте после нее код:
234 235 236 | $mytitle = htmlspecialchars(stripcslashes( get_post_meta($post['ID'], '_aioseop_title', true))); if ($mytitle != '') {$post['post_title'] = $mytitle;} |
Не забудьте, что если в этом плагине вы используете кэширование, то результаты вы сможете увидеть, только удалив файл кэша.
Такими нехитрыми хаками можно заставить эти два плагина выводить заголовки из любого другого SEO-плагина тоже. Вам достаточно лишь поменять в коде имя произвольного поля "_aioseop_title" на используемое в вашем плагине.
SEO-заголовки в RSS-ленте
Данные из All in One SEO Pack можно использовать не только в плагинах карт сайта. Например, можно генерировать RSS-ленту блога с заголовками, прописанными в All in One SEO Pack. Я об этом уже писал, но там решение было не слишком удачным, так как использовался хак движка, а хакать движок не самая лучшая идея. Так что приведу пример нормального хака, который реализуется через добавление в файл шаблона functions.php кода:
//выводим полный заголовок из All in One SEO Pack в RSS start function custom_title_rss($content) { global $wp_query; $postid = $wp_query->post->ID; $rsstitle = get_post_meta($postid, '_aioseop_title', true); if($rsstitle != '') { $content = htmlspecialchars(stripcslashes($rsstitle)); } return $content; } add_filter('the_title_rss', 'custom_title_rss'); //выводим полный заголовок из All in One SEO Pack в RSS end |
И опять же, этот код можно заставить работать с любым другим SEO-плагином, если изменить имя произвольного поля на используемое этим плагином.
Оба описанных хака я использую на этом сайте – и в карте сайта и в RSS-ленте у меня выводятся полные SEO-заголовки.
Понравился пост? Подпишись на обновления по RSS или Twitter !
#1,
А разве Dagon Design Sitemap Generator ещё жив? На http://wordpress.org/extend/plugins/ его нету.
#2,
хз почему он из репозитория пропал. но на странице автора его еще можно скачать. к сожалению, плагинов карт сайта для людей не так то много. эти 2 указанных и еще парочка кривых плагинов и больше выбирать не из чего.
#3,
Не знаю все эти карты сайтов только для машин а не для людей. Не думаю что много людей туда смотрят
#4,
зависит от сайта и его структуры. здесь у меня на сайте картой сайта пользуются многие, так как для посетителя довольно сложно найти описание какого-то конкретного плагина, который непонятно к какой рубрике отнесен.
#5,
Спасибо!
может у автора будет также вариант решения для плагина Microkid's Related Posts ?
#6,
уверены, что именно для этого плагина? насколько я помню, он по умолчанию русский текст в названиях статей не поддерживает.
#7,
да нет вроде как поддерживает, я с помощью него делаю ручную перелинковку на сайте, только он выводит название статей а мне б хотелось чтоб он название брал из All in One SEO Pack ))
#8,
прошу прощения, помочь не могу. я сейчас мельком взглянул на плагин - он названия статей ищет js-скриптом, как там его поправить я так сходу понять не смог, а разбираться времени особо нет.
#9,
по моему их миллионы
я пользуюсь WP Realtime Sitemap и XML-Sitemap
#10,
Спасибо, воспользуюсь
#11,
Спасибо, хотя само решение уже не годится для третьего вордпресса, сам синтаксис полезен чтобы написать свою функцию. В третьем вордпрессе это должно выглядеть так get_post_meta($post->ID, '_aioseop_title', true);
#12,
еще как годится :) я до сих пор использую - весь вопрос где именно эта функция должна быть использована. если в файлах шаблона, то использовать надо $post->ID - если же файлы плагинов, то там должен быть именно тот синтаксис, что указан в статье.
#13,
Автор, огромное спасибо за решение с рсс через All in One SEO Pack.
Кстати, первоначальный вариант действительно неудачный. У меня вообще не заработал. А этот - то что надо!
#14,
Спасибо, интересный вариант рассмотрели. Я не очень полагаюсь на плагин All in One SEO Pack, несмотря на его большую популярность. Он очень часто дает сбои и конфликтует с новыми версиями движка ((((
#15,
чушь - он не дает сбои и не конфликтует.
он установлен на миллионе сайте, так что зря вы фигню пишите. коммент ради ссылки запилили? просто он совершенно не в кассу.