Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Избавляемся от ссылок страницы на саму себя


ikarus

Recommended Posts

Насколько я успел познакомился с seo, очень не хорошо когда страница ссылается на саму себя, причем в случае с opencart это проявляется еще и не один раз: последняя ссылка в "хлебных крошках", ссылка в боковом меню категорий, ссылка в верхнем меню и т.д. и т.п. ...
 
Если баян пордоньте...
Всё делалось для ocstore 1.5.3.1
 
1. Делаем из последней ссылки в хлебных крошках просто текст (метод не мой, взял где то тут на форуме, где уже не помню...):
 
в шаблонах где есть крошки:
\catalog\view\theme\ваша_тема\template\product\category.tpl
\catalog\view\theme\ваша_тема\template\product\product.tpl
\catalog\view\theme\ваша_тема\template\product\special.tpl
\catalog\view\theme\ваша_тема\template\product\manufacturer_info.tpl
и т.д.
 
находим:

<div class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>
</div>

меняем на:

<div class="breadcrumb">
   <?php foreach ($breadcrumbs as $i=> $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><?php if($i+1<count($breadcrumbs)) { ?>
	<a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } else { ?>
	<?php echo $breadcrumb['text']; ?>
    <?php } ?>
    <?php } ?>
</div>

2. Делаем из ссылки на текущую категорию в меню категорий просто текст
 
В шаблоне catalog\view\theme\ваша_тема\template\module\category.tpl:
тут проще заменить всё на:

<div class="box">
  <div class="box-heading"><?php echo $heading_title; ?></div>
  <div class="box-content">
    <div class="box-category">
      <ul>
        <?php foreach ($categories as $category) { ?>
        <li>
          <?php if ($category['category_id'] == $category_id && !$child_id) { ?>
          <span class="active" ><?php echo $category['name']; ?></span>
		  <?php } elseif ($category['category_id'] == $category_id && $child_id) { ?>
		  <a class="active" href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
          <?php } else { ?>
          <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
          <?php } ?>
          <?php if ($category['children']) { ?>
          <ul>
            <?php foreach ($category['children'] as $child) { ?>
            <li>
              <?php if ($child['category_id'] == $child_id) { ?>
              <span class="active"><?php echo $child['name']; ?></span>
              <?php } else { ?>
              <a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a>
              <?php } ?>
            </li>
            <?php } ?>
          </ul>
          <?php } ?>
        </li>
        <?php } ?>
      </ul>
    </div>
  </div>
</div>

тут необходимо добавить стилей
в \catalog\view\theme\default\stylesheet\stylesheet.css
минимум что надо сделать чтобы меню категорий вообще работало:
 
найти это:

.box-category > ul > li a.active + ul {
	display: block;
}

заменить на это:

.box-category > ul > li a.active + ul, .box-category > ul > li span.active + ul {
	display: block;
}

ну и добавить нужные стили к получившемуся вместо ссылки тексту.

3. Можно также очень просто уникализировать титлы страниц категорий:
в catalog\controller\product\category.php

находим

        if ($category_info) {
            if ($category_info['seo_title']) {
                  $this->document->setTitle($category_info['seo_title']);
            } else {
                  $this->document->setTitle($category_info['name']);
            }

и заменяем на

		if ($category_info) {
			if ($category_info['seo_title']) {
			    if($page > 1){
				$this->document->setTitle($category_info['seo_title'].' - Страница '.$page);
			    } else {
				$this->document->setTitle($category_info['seo_title']);
			    }
			} else {
			    if($page > 1){
				$this->document->setTitle($category_info['name'].' - Страница '.$page);
			    } else {
				$this->document->setTitle($category_info['name']);
			    }
			}

не забываем про кодировку UTF-8(без BOM), по аналогии делаем тоже в остальных "категорийных" модулях manufacturer.php, special.php, search.php

 
Пока всё...

  • +1 1
Надіслати
Поділитися на інших сайтах

  • 2 months later...

к сожалению на 1.5.4.1 не получается циклы убрать в категориях меню, вроде код тот же 

<div class="box">
  <div class="box-heading"><?php echo $heading_title; ?></div>
  <div class="box-content">
    <div class="box-category">
      <ul>
        <?php foreach ($categories as $category) { ?>
        <li>
          <?php if ($category['category_id'] == $category_id) { ?>
          <a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
          <?php } else { ?>
          <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
          <?php } ?>
          <?php if ($category['children']) { ?>
          <ul>
            <?php foreach ($category['children'] as $child) { ?>
            <li>
              <?php if ($child['category_id'] == $child_id) { ?>
              <a href="<?php echo $child['href']; ?>" class="active"> - <?php echo $child['name']; ?></a>
              <?php } else { ?>
              <a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a>
              <?php } ?>
            </li>
            <?php } ?>
          </ul>
          <?php } ?>
        </li>
        <?php } ?>
      </ul>
    </div>
  </div>
</div>

Надіслати
Поділитися на інших сайтах


  • 5 months later...

какая все же кривая движка под SEO, честно слово удивлен.

 

Но.

 

1. Со страницы читается только одна ссылка на URL, даже если их 50 шт

2. Много ссылок на разные страницы - это линпомойка

3. Убрав ссылки много не измените, сразу эффект не увидите

 

И да не забудьте, если прописать анкор к ссылке результат будет обратным

Надіслати
Поділитися на інших сайтах


  • 5 weeks later...
  • 1 year later...

Всех приветствую.Может кто подскажет.Хочу что бы активная категория не была ссылкой в главном меню.Применил вот такую схему: в файле header.tlp после условия "если категория активна"

<li><?php if ($category['active']) { ?>
заменил
<a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
в которой href="<?php echo $category['href']; ? та самая ссылка
на вот такой код
<a ><?php echo $category['name']; ?></a> и в итоге имеет неактивную ссылку .НО ссылка становиться неактивной не только на самой странице категории а так же и на странице товара из данной категории(оно и понятно система ведь считает данную категорию активной так же и на странице с товаром),хочется сделать что бы на странице товара ссылка была активна, и пошльзователь легко мог вернуться от конкретного товара к просмотру категории целиком с полным списком товаров.

Надіслати
Поділитися на інших сайтах


  • 1 year later...

Добрый день всем!

Кто-нибудь может подсказать как убрать циклические ссылки не на страницах категорий/товаров, а например: Контакты, Доставка, Блог?

Надіслати
Поділитися на інших сайтах


  • 3 years later...

Спасибо за решение.

        <?php if ($category['category_id'== $category_id && !$child_id) { ?>
        <span><?php echo $category['name']; ?></span>
        <?php } else { ?>
        <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
        <?php } ?>

ссылка главной категории активна, когда находишься в дочерней.

Вопрос.

Как так же сделать для дочерней категории, что бы ссылка была активной когда находишься в продукте?

Змінено користувачем orqaok
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.