X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Title подкатегории и под подкатегории
Jean
Jean
Topic Starter сообщение 3.2.2014, 16:48; Ответить: Jean
Сообщение #1


Доброго времени.
Есть проблема с корректным отражением title в WP
На данный момент он составляется так
Категория-Название сайта
Запись - Категория - Название сайта

А вот если я создаю подкатегорию, то тут уже проблема

Подкатегория-Название сайта
Запись-Название сайта

А хотелось бы:
Запись-Подкатегория-Категория-Название сайта

Что очень не удобно когда это к примеру подкатегория товара.
Подскажите как исправить?

Сообщение отредактировал Jean - 3.2.2014, 22:38
Причина редактирования: для большей доходчивости
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Игорян_mw
Игорян_mw
сообщение 3.2.2014, 21:43; Ответить: Игорян_mw
Сообщение #2


Думаю, плагин "All In One SEO Pack" решит вашу проблему. Если конечно я правильно понял чего вы хотите.

[img]http://cdn.joxi.ru/uploads/prod/2014/02/03/90b/369/105177309e5dc2a9c943a94876b94c880704a0c8.jpg[/img]

Сообщение отредактировал Игорян - 3.2.2014, 21:45
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Jean
Jean
Topic Starter сообщение 3.2.2014, 22:37; Ответить: Jean
Сообщение #3


Не уж то ни одного программера на форуме нет? или не сталкивались?


[member=Игорян], конечно не правильно, ибо тема даже не в Seo разделе создана...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 4.2.2014, 12:13; Ответить: matroskin8
Сообщение #4


Приветствую.
Заинтересовала задача, решил попробовать набросать функцию. Функцию помещаем в файл functions:
function nav_title(){
// строка для title
$nav_title = '';
// разделитель
$sep = ' - ';
// если главная страница
if( is_home() || is_front_page() ){
  echo get_bloginfo('name');
  return;
}
// если страница метки
if( is_tag() ){
  echo single_tag_title('', false) . $sep . get_bloginfo('name');
  return;
}
// если результаты поиска
if( is_search() ){
  echo "Результаты поиска: " . get_search_query();
  return;
}
// если не категория, тогда название берем из wp_title
if(!is_category()){
  $nav_title .= wp_title('', false) . $sep;
}
// получаем массив категории поста
$category = get_the_category();
// ID категории
$cat_id = $category[0]->cat_ID;
// если есть ID
if($cat_id){
  // пробуем получить родительские категории
  $categories = get_category_parents($cat_id);
  // удаляем слеш в конце
  $categories = rtrim($categories, '/');
  // получаем массив
  $categories = explode('/', $categories);
  // меняем порядок элементов на обратный
  $categories = array_reverse($categories);
  // формируем строку
  $nav_title .= implode($sep, $categories);
  // добавляем разделитель
  $nav_title .= $sep;
}
$nav_title .= get_bloginfo('name');
echo $nav_title;
}


В тайтле шаблона header вызываем функцию:
<title><?php nav_title(); ?></title>

Функцию тестировал на простенькой теме на компонентах страницы / записи / категории / подкатегории / метки / поиск. Все работает. Если нужны какие-то дополнительные компоненты, тогда нужно расширять функцию.
Чуть позже, наверное, перепишу функцию, сделав ее более универсальной и пригодной не только для тайтла, но и для хлебных крошек.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Jean
Jean
Topic Starter сообщение 5.2.2014, 10:34; Ответить: Jean
Сообщение #5


[member=matroskin8], я не программист к сожалению) возможно что то ни так сделал

Parse error: syntax error, unexpected $end in /home/a8574/public_html/m.ru/wp-content/themes/Ms/functions.php on line 749
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 5.2.2014, 11:13; Ответить: matroskin8
Сообщение #6


В ошибке сообщается, что где-то в районе 749-ой строки пропущена точка с запятой. До добавления моей функции эта точка с запятой была необязательна. Поэтому либо поставьте точку с запятой, либо поместите мою функцию в начало файла функциий... ну либо можете прикрепить файл функций и я гляну.
К слову, функцию уже переписал (поскольку предыдущая не лишена недостатков), остались некоторые мелочи. Если заинтересует, то смогу выложить чуть позже.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Jean
Jean
Topic Starter сообщение 5.2.2014, 11:14; Ответить: Jean
Сообщение #7


[member=matroskin8], Буду очень благодарен, выкладывайте. Кстати, а будет ли дружить ваша функция с плагинами seo оптимизации?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 5.2.2014, 11:24; Ответить: matroskin8
Сообщение #8


Никаких конфликтов с плагинами быть не должно (но нужно, конечно же, тестировать), поскольку функция использует стандартные теги WP для построения цепочки навигации для основных компонентов:
- Главная страница
- Страница метки
- Страница результатов поиска
- Страница 404
- Рубики
- Записи
- Отдельные страницы
- Для всех остальных возможных компонентов использован стандартный тег wp_title().
Сегодня чуть позже выложу функцию и прикреплю небольшую видео инструкцию.

Сообщение отредактировал matroskin8 - 5.2.2014, 11:25
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 5.2.2014, 14:04; Ответить: matroskin8
Сообщение #9


Новая функция:
function nav_title($breadcrumbs = false){
// $nav_title = array();
$sep = ' - ';
$site = get_bloginfo('name');
$site_url = home_url();
$home = "<a href='{$site_url}'>{$site}</a>";
if( is_home() || is_front_page() ){
  $nav_title = array($home);
}
elseif( is_tag() ){
  $nav_title = array( $home, single_tag_title('Метка: ', false) );
}
elseif( is_search() ){
  $nav_title = array( "Результаты поиска по запросу: " . get_search_query() );
}
elseif( is_404() ){
  $nav_title = array( $home, '404' );
}
elseif( is_category() ){
  $cat_id = get_query_var('cat');
  $cat = get_category($cat_id);
  if($cat->parent){
   $categories = rtrim(get_category_parents($cat_id, true, $sep), $sep);
   if(!$breadcrumbs){
    $categories = explode($sep, $categories);
    $categories = array_reverse($categories);
    $categories = implode($sep, $categories);
   }
   $nav_title = array($home, $categories);
  }else{
   $nav_title = array($home, $cat->name);
  }
}
elseif( is_single() ){
  $category = get_the_category();
  $cat_id = $category[0]->cat_ID;
  $categories = rtrim(get_category_parents($cat_id, true, $sep), $sep);
  $categories = explode($sep, $categories);
  $home_arr = array($home);
  $title = array(get_the_title());
  $nav_title = array_merge($home_arr, $categories, $title);
}
elseif( is_page() ){
  $nav_title = array($home, get_the_title());
}
else{
  $nav_title = wp_title( '/', false, 'right' );
  return rtrim($nav_title, ' /');
}
if(!$breadcrumbs){
  $nav_title = array_reverse($nav_title);
  $nav_title = implode($sep, $nav_title);
  $nav_title = strip_tags($nav_title);
}else{
  $nav_title = implode($sep, $nav_title);
}
return $nav_title;
}


Вызываем в теге title:
<title><?php echo nav_title(); ?></title>


Также функцию можно использовать для формирования хлебных крошек, вызывая в нужном месте шаблона и передавая параметром строку true:
<div class="breadcrumbs">
<?php echo nav_title(true); ?>
</div>


В видео ниже на всякий случай показал весь процесс с комментариями. С плагином All in One Seo функция не конфликтует. Однако, плагин полностью переписывает title и вставляет туда результат своей работы. Поэтому, как вариант, можно отключить переписыванияе плагином заголовков... ну, или копаться в коде плагина / писать свой плагин.
[media]http://youtu.be/qRI9z7pTpLs[/media]

P.S. Видео почему-то на форуме проигрывается через раз, поэтому вот прямая ссылка на видео.

Сообщение отредактировал matroskin8 - 5.2.2014, 14:11
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Jean
Jean
Topic Starter сообщение 11.2.2014, 11:42; Ответить: Jean
Сообщение #10


[member=matroskin8], Кстати вы в примере что тут написали зачем то закомментировали код, в итоге он не работал)
function nav_title($breadcrumbs = false){//
Убрал и заработало)Но есть проблема на блоге, где тема не совсем простая))
<title>Warning: rtrim() expects parameter 1 to be string, object given in /home/srv32044/lov2.me/wp-content/themes/lov21/functions.php on line 51Название сайта</title>
Файл functions.php там от фреймверка) Скопировал с тем как я ставлю в код
<?php/** * Theme functions file * * DO NOT MODIFY THIS FILE. Make a child theme instead: http://codex.wordpress.org/Child_Themes * * @package ClassiPress * @author AppThemes */global $cp_options;// current version$app_theme = 'ClassiPress';$app_abbr = 'cp';$app_version = '3.3';$app_db_version = 1960;$app_edition = 'Ultimate Edition';// define rss feed urls$app_rss_feed = 'http://feeds2.feedburner.com/appthemes';$app_twitter_rss_feed = 'http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=appthemes';$app_forum_rss_feed = 'http://forums.am/external.php?type=RSS2';// define the transients we use$app_transients = array($app_abbr.'_cat_menu');define( 'APP_TD', 'classipress' );// Frameworkrequire_once( dirname( __FILE__ ) . '/framework/load.php' );// Paymentsrequire_once( dirname( __FILE__ ) . '/includes/payments/load.php' );// Optionsrequire_once( dirname( __FILE__ ) . '/includes/theme-options.php' );scb_register_table( 'app_pop_daily', $app_abbr . '_ad_pop_daily' );scb_register_table( 'app_pop_total', $app_abbr . '_ad_pop_total' );APP_Mail_From::init();require_once( dirname( __FILE__ ) . '/framework/includes/stats.php' );if ( is_admin() )	require_once( dirname( __FILE__ ) . '/framework/admin/importer.php' );// Theme-specific filesrequire_once( dirname( __FILE__ ) . '/includes/theme-functions.php' );function nav_title($breadcrumbs = false){ $nav_title = array();$sep = ' - ';$site = get_bloginfo('name');$site_url = home_url();$home = "<a href='{$site_url}'>{$site}</a>";if( is_home() || is_front_page() ){  $nav_title = array($home);}elseif( is_tag() ){  $nav_title = array( $home, single_tag_title('Метка: ', false) );}elseif( is_search() ){  $nav_title = array( "Результаты поиска по запросу: " . get_search_query() );}elseif( is_404() ){  $nav_title = array( $home, '404' );}elseif( is_category() ){  $cat_id = get_query_var('cat');  $cat = get_category($cat_id);  if($cat->parent){   $categories = rtrim(get_category_parents($cat_id, true, $sep), $sep);   if(!$breadcrumbs){	$categories = explode($sep, $categories);	$categories = array_reverse($categories);	$categories = implode($sep, $categories);   }   $nav_title = array($home, $categories);  }else{   $nav_title = array($home, $cat->name);  }}elseif( is_single() ){  $category = get_the_category();  $cat_id = $category[0]->cat_ID;  $categories = rtrim(get_category_parents($cat_id, true, $sep), $sep);  $categories = explode($sep, $categories);  $home_arr = array($home);  $title = array(get_the_title());  $nav_title = array_merge($home_arr, $categories, $title);}elseif( is_page() ){  $nav_title = array($home, get_the_title());}else{  $nav_title = wp_title( '/', false, 'right' );  return rtrim($nav_title, ' /');}if(!$breadcrumbs){  $nav_title = array_reverse($nav_title);  $nav_title = implode($sep, $nav_title);  $nav_title = strip_tags($nav_title);}else{  $nav_title = implode($sep, $nav_title);}return $nav_title;}
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Ссылки за которые не стыдно! Качественный линк билдинг сервис под Бурж от Westrank. Честный прайс.
63 DaoDog 47221 Вчера, 12:05
автор: Omaxis
Открытая тема (нет новых ответов) Прототипирование + дизайн + вёрстка = красивый и эффективный сайт под ключ
0 bunneh 352 16.4.2024, 18:02
автор: bunneh
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыBurzh.top|Партнерская программа под любой вид трафика (email, спам, УБТ)
2 cryptius 763 16.4.2024, 17:50
автор: cryptius
Горячая тема (нет новых ответов) Hyper.hosting - сервера под любые задачи [разрешены dmca, гэмблинг, адалт и пр.]
Лучшие сервера по доступной цене
32 Hyper_Hosting 9148 15.4.2024, 13:03
автор: Hyper_Hosting
Открытая тема (нет новых ответов) SEO Линк Билдинг под Бурж | Вечные ссылки США, Европа и Мир с Гарантией
20 Needmylink1 7002 12.4.2024, 23:32
автор: Needmylink1


 



RSS Текстовая версия Сейчас: 20.4.2024, 12:00
Дизайн