Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


ikarus
 Share

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
Link to comment
Share on other sites

  • 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>

Link to comment
Share on other sites


  • 5 months later...

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

 

Но.

 

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

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

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

 

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

Link to comment
Share on other sites


  • 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> и в итоге имеет неактивную ссылку .НО ссылка синовиться неактивной не только на самой страниэто категории а ик же и на страниэто товара из данной категории(оно и понятно система ведь слииет данную категорию активной ик же и на страниэто с товаром),хочется сгделать что бы на страниэто товара ссылка была активна, и пошльзователь легко мог вернуться от конкретного товара к просмотру категории этоликом с полным списком товаров.

Link to comment
Share on other sites


  • 1 year later...

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

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

Link to comment
Share on other sites


  • 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 } ?>

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

Вопрос.

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

Edited by orqaok
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.