Пустые страницы блога Принято

3

У нас есть два блога на разных доменах. Один ведется с 2013 года, другой с 2015.


В результате в меню навигации блога присутствуют страницы за каждый месяц с 2013 г. и они пусты. Пользователи заходят на путсые страницы, поисковики ругают нас за пустые страницы.


Исправьте, чтобы если нет записей, то и в навигации блога не было этого месяца. Пример:

https://cheros.ru/blog/2013/12/



6 комментариев

  • +4
    Михаил Михаил 7 декабря 2017 11:08 #

    Та же проблема! Как отменить автоматическое создание этих страниц?!

  • +3
    Иван Chers Иван Chers 27 марта 2018 12:31 #

    Когда сделаете? Ну смешно уж, простейшие баги годами висят...

  • +2
    vvedik vvedik 19 ноября 2018 10:23 #

    У меня такая же ситуация с пустыми страницами

  • +1
    replicant replicant 19 ноября 2018 14:21 #

    В упрощенном варианте вывод ссылок на посты по месяцам выглядит так

    {$timeline = $wa->blog->timeline()}
    {if !empty($timeline)}
        <ul>
        {$year=null}
        {foreach $timeline as $year_month => $item}
    ......... всяко-разно малоинтересно .......
            {/foreach}
            </ul>
    {/if}

    А содержимое массива выводимое в шаблон выглядит так

      'timeline' => array(
        201809 => array(
          'count' => '3',
          'timeline' => '201809',
          'month' => '09',
          'year' => '2018',
          'blog_id' => '1',
          'blog_url' => 'урл блога',
          'link' => 'ваш_сайт/2018/09/',
          'selected' => false,
          'year_selected' => false,
          'year_link' => 'ваш_сайт/2018/',
        ),
      ),

    Объяснять, что обозначает blog_id не буду, но в зависимости от того на каком домене какой именно используется блог делать выборку надо только timeline определенного блога.

    Вот эта цифра 1 в скобках ограничит выборку для timeline из вашей БД только блогом с id=1

    {$timeline = $wa->blog->timeline(1)}

    Наложите на эту цифру id блога условие по домену примерно так

    {if $wa->domainUrl() == 'https://cheros.ru'}
      {$timeline = $wa->blog->timeline(1)}
        {else}
      {$timeline = $wa->blog->timeline(2)}
    {/if}
    1 и 2 - заменить на ваши id блогов

    и всё!

    Имеет место быть простая недоработка темы дизайна под ваши задачи. Задачи просто у всех разные и небольшие допиливания всегда приходится делать. Если на разных доменах разные темы дизайна, то и условие даже не нужно. В скобках в шаблонах тем нужные цифры проставить для соответствия домен-блог. :)

    • +1
      vvedik vvedik 19 ноября 2018 15:49 #

      Спасибо, за ответ! Это решение формирует правильные ссылки у блога, но страницы при переходе по URL все равно остаются с пустыми, а не отдает 404.

      • +1
        replicant replicant 19 ноября 2018 16:10 #

        Есс-но не отдает 404. Вопрос ведь не об этом был, а том, как сделать так, чтобы в календаре или как оно там называется, не генерировались в принципе пустые страницы из-за нескольких блогов на разных доменах.

        Пустые страницы, которые были сгенерированы ранее и попали в поиск, когда timeline выдавала все ссылки на все блоги в один календарь, надо бы удалить из базы поисковика в Яндексе или Гугле руками для ускорения процесса, чтобы люди по этим ссылкам не попадали на сайт.

        Про обработку ошибки 404 и ошибки поиска при отсутствии постов при выборке по году или году+месяцу создайте отдельную тему. Думаю, что решение найдется.

        Тут ведь есть очень тонкий момент. Я просто на него вам намекну.

        Ссылка /2018/45/ выдаст 404 ошибку, а ссылка /2018/05/ выдаст 0 записей, если их не было в мае.
        Ссылка /2099/ выдаст 0 записей, а /2100/ ошибку 404. :)

        Поэтому лепить 404 на все подряд страницы с 0 записей - это какая-то противоестественная затея. ИМХО лучше уничтожить причину появления таких ссылок на сайте.

        Добавить комментарий

        Чтобы добавить комментарий, зарегистрируйтесь или войдите