Помощник
|
Title подкатегории и под подкатегории |
Jean
|
Сообщение
#1
|
||
|
|
||
|
|||
Игорян_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
|
Сообщение
#3
|
|
Не уж то ни одного программера на форуме нет? или не сталкивались?
[member=Игорян], конечно не правильно, ибо тема даже не в Seo разделе создана... |
|
|
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
|
Сообщение
#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 |
5.2.2014, 11:13;
Ответить: matroskin8
Сообщение
#6
|
|
В ошибке сообщается, что где-то в районе 749-ой строки пропущена точка с запятой. До добавления моей функции эта точка с запятой была необязательна. Поэтому либо поставьте точку с запятой, либо поместите мою функцию в начало файла функциий... ну либо можете прикрепить файл функций и я гляну.
К слову, функцию уже переписал (поскольку предыдущая не лишена недостатков), остались некоторые мелочи. Если заинтересует, то смогу выложить чуть позже. |
|
|
Jean
|
Сообщение
#7
|
|
[member=matroskin8], Буду очень благодарен, выкладывайте. Кстати, а будет ли дружить ваша функция с плагинами seo оптимизации?
|
|
|
matroskin8 |
5.2.2014, 11:24;
Ответить: matroskin8
Сообщение
#8
|
|
Никаких конфликтов с плагинами быть не должно (но нужно, конечно же, тестировать), поскольку функция использует стандартные теги WP для построения цепочки навигации для основных компонентов:
- Главная страница - Страница метки - Страница результатов поиска - Страница 404 - Рубики - Записи - Отдельные страницы - Для всех остальных возможных компонентов использован стандартный тег wp_title(). Сегодня чуть позже выложу функцию и прикреплю небольшую видео инструкцию. Сообщение отредактировал matroskin8 - 5.2.2014, 11:25 |
|
|
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
|
Сообщение
#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;} |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
SEO-продвижение USA, Europe, Asia под ключ | Dating, Gambling, Essay и 10+ ниш | 1 | Needmylink1 | 643 | 17.3.2024, 12:58 автор: Needmylink1 |
|
HideHost.net - Виртуальные и выделенные сервера под любые Ваши проекты с индивидуальным подходом. Работаем уже более 12 лет |
5 | HIDEHOST | 2107 | 15.3.2024, 17:28 автор: Yaguar76 |
|
Какой сайт пробовать создавать под небольшое ГЕО? | 6 | kapusta1 | 1195 | 15.3.2024, 13:06 автор: OS_ZP_UA |
|
Hyper.hosting - сервера под любые задачи [разрешены dmca, гэмблинг, адалт и пр.] Лучшие сервера по доступной цене |
29 | Hyper_Hosting | 8307 | 12.3.2024, 14:51 автор: Hyper_Hosting |
|
SEO Линк Билдинг под Бурж | Вечные ссылки США, Европа и Мир с Гарантией | 17 | Needmylink1 | 6306 | 11.3.2024, 12:33 автор: Needmylink1 |
Текстовая версия | Сейчас: 19.3.2024, 12:36 |