Вывод заголовков All in One SEO Pack в плагинах карт сайта.
Опубликовано: 06.09.2018

Вдогонку к статье о плагине 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' ] ) . '"' ; |
$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 ; } |
$mytitle = htmlspecialchars(stripcslashes( get_post_meta($post_data[$p]['id'], '_aioseop_title', true))); if ($mytitle != '') {$the_title = $mytitle;}
YouTube Отдыхает. Получайте Доход на Самонаполняемых Видео-сайтах. Урок 6.3
Этот код сработает только для записей, а для страниц надо сделать еще одно небольшое изменение в файле sitemap-generator.php . Найдите строчку:
469 | $t_out .= '<li><a href="' . get_permalink ( $page_data [ $p ] [ 'id' ] ) . '"' ; |
$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 ; } |
$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 ) { |
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 ; } |
$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 |
//выводим полный заголовок из 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-заголовки.