Как избавится от дубля страницы #more- на wp

Автор Тема: Как избавится от дубля страницы #more- на wp  (Прочитано 4924 раз)

Оффлайн makar5994Автор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 0
  • Сообщений: 63
  • Карма: 1
    • Просмотр профиля

Оффлайн makar5994Автор темы

  • Пользователь
  • **
Подскажите пожалуйста Как избавится от дубля страницы #more- на wp. Пример
http://bestreceptov.ru/sladkaya-stranichka/keks-s-vishney#more-2575
http://bestreceptov.ru/sladkaya-stranichka/keks-s-vishney
Одна и та же страница, как ее удалить?


Оффлайн STRIJ

  • Глобальный модератор
  • Бизнес оценка: (3, 100%)
  • *****
  • СПАСИБО: 1361
  • Сообщений: 4712
  • Карма: 146
  • Пол: Мужской
  • Back to the future
  • Награды Более одной тысячи спасибо КМС поисковой оптимизации Почетный гражданин нашего форума За благотворительность
    • Просмотр профиля
    • Заработок в интернете

Оффлайн STRIJ

  • Глобальный модератор
  • *****
Все хочу в блоге про это написать... руки не доходят... наверно на днях все же займусь...

А убрать легко - Для того, чтобы убрать #more в ссылке на полный текст записи нужно отредактировать файл /wp-includes/post-template.php в директории wordpress. В этой файле нужно найти строку, где формируется ссылку на полную новость и вставляется как раз таки этот #more:
 Посмотрелл в своем Wordpress, это 220 строка:
 $output .= apply_filters( 'the_content_more_link', ' ID}" class="more-link">$more_link_text", $more_link_text );

 Для того, чтобы убрать #more удаляем только more-{$post->ID}, так что получится:
 $output .= apply_filters( 'the_content_more_link', ' ID} - проерил, все работает #more в полной ссылке записи пропало.

Или можно добавить в functions.php следующий код:

Код:
Только зарегистрированные пользователи могут видеть код. Пожалуйста, войдите или зарегистрируйтесь.

Оффлайн makar5994Автор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 0
  • Сообщений: 63
  • Карма: 1
    • Просмотр профиля

Оффлайн makar5994Автор темы

  • Пользователь
  • **
Должна ли при этом открываться страница с more или нет?
Мой код
$output .= apply_filters( 'the_content_more_link', ' <a href="' . get_permalink() . "#more-{$post->ID}\" class=\"more-link\">$more_link_text</a>", $more_link_text );
         $output = force_balance_tags($output);
      }
Выделенное я удаляю (как Вы и говорили), но страница more открывается.

Оффлайн STRIJ

  • Глобальный модератор
  • Бизнес оценка: (3, 100%)
  • *****
  • СПАСИБО: 1361
  • Сообщений: 4712
  • Карма: 146
  • Пол: Мужской
  • Back to the future
  • Награды Более одной тысячи спасибо КМС поисковой оптимизации Почетный гражданин нашего форума За благотворительность
    • Просмотр профиля
    • Заработок в интернете

Оффлайн STRIJ

  • Глобальный модератор
  • *****
makar5994,

Нет, не должна она открываться, попробуйте в другом браузере или кеш почистите, если не получается, чего не должно быть, я много раз так делал, огда пробуйте вторым способом.

Оффлайн cyclop

  • Модератор
  • Бизнес оценка: (2, 100%)
  • *****
  • СПАСИБО: 234
  • Сообщений: 697
  • Карма: 50
  • Пол: Мужской
  • Возвращаюсь
    • Просмотр профиля

Оффлайн cyclop

  • Модератор
  • *****
Должна ли при этом открываться страница с more или нет?
Если на сайт есть ссылки с more, то они по прежнему будут открываться.

Ссылка с #more- это не дубль страницы, это просто указание на внутреннею ссылку внутри записи.


Оффлайн makar5994Автор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 0
  • Сообщений: 63
  • Карма: 1
    • Просмотр профиля

Оффлайн makar5994Автор темы

  • Пользователь
  • **
Заходил в другом браузере и кеш почистил, но страница открывается. Другой способ не получается у меня совсем другой код в папке  functions.php

<?php
if ( function_exists('register_sidebar') )
    register_sidebar(array(
       'name' => 'Sidebar',
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '<h3>',
        'after_title' => '</h3>',
    ));
    register_sidebar(array(
       'name' => 'Sidebar2',
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '<h3>',
        'after_title' => '</h3>',
    ));

?>
Что здесь куда вставлять я не знаю

Оффлайн STRIJ

  • Глобальный модератор
  • Бизнес оценка: (3, 100%)
  • *****
  • СПАСИБО: 1361
  • Сообщений: 4712
  • Карма: 146
  • Пол: Мужской
  • Back to the future
  • Награды Более одной тысячи спасибо КМС поисковой оптимизации Почетный гражданин нашего форума За благотворительность
    • Просмотр профиля
    • Заработок в интернете

Оффлайн STRIJ

  • Глобальный модератор
  • *****
makar5994,

Вставлять тот код, что я дал в самый конец functions.php

Оффлайн makar5994Автор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 0
  • Сообщений: 63
  • Карма: 1
    • Просмотр профиля

Оффлайн makar5994Автор темы

  • Пользователь
  • **
Страница с more все равно открывается.

Добавлено: 06-06-2012, 13:33:25

Сам код
<?php
if ( function_exists('register_sidebar') )
    register_sidebar(array(
       'name' => 'Sidebar',
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '<h3>',
        'after_title' => '</h3>',
    ));
    register_sidebar(array(
       'name' => 'Sidebar2',
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '<h3>',
        'after_title' => '</h3>',
    ));


?>
<?php
   function remove_more_tags($link) {
       $offset = strpos($link, '#more-');
       if ($offset) {
           $end = strpos($link, '"',$offset);
       }
       if ($end) {
           $link = substr_replace($link, '', $offset, $end-$offset);
       }
       return $link;
   }
   add_filter('the_content_more_link', 'remove_more_tags');
   ?>

Оффлайн STRIJ

  • Глобальный модератор
  • Бизнес оценка: (3, 100%)
  • *****
  • СПАСИБО: 1361
  • Сообщений: 4712
  • Карма: 146
  • Пол: Мужской
  • Back to the future
  • Награды Более одной тысячи спасибо КМС поисковой оптимизации Почетный гражданин нашего форума За благотворительность
    • Просмотр профиля
    • Заработок в интернете

Оффлайн STRIJ

  • Глобальный модератор
  • *****
Елки палки... теперь понятно... во первых, вы что-то накосячили и теперь по ссылке Читать далее выдает 404 ошибку... уберите код из функцион, а во вторых, нужно было проверять нажимая на ссылку Читать далее, а не просто вставлять ссылку в браузер с текстом #more, ведь после # можно написать что угодно и оно будет открываться, но это не значит что у вас е сть такая страница и это дубль...

к примеру - http://bestreceptov.ru/sladkaya-stranichka/keks-s-vishney#тралялял

так же открывается, но не значит что есть такая страница!

Добавлено: 06-06-2012, 13:48:46

"#more-{$post->ID}\"

Проверьте, нужно удалять БЕЗ КОВЫЧЕК!
« Последнее редактирование: 06-06-2012, 13:48:46 от Delorean »


Оффлайн makar5994Автор темы

  • Бизнес оценка: (0)
  • Пользователь
  • **
  • СПАСИБО: 0
  • Сообщений: 63
  • Карма: 1
    • Просмотр профиля

Оффлайн makar5994Автор темы

  • Пользователь
  • **
Я вернул post-template.php каким он и был, проблема устранена. в functions.php Код оставил. Как теперь узнать корректно ли работает данный код?


 

Похожие темы

  Тема / Автор Ответов Последний ответ
11 Ответов
7772 Просмотров
Последний ответ 17-11-2013, 00:34:37
от Лаврентий
2 Ответов
1316 Просмотров
Последний ответ 05-01-2012, 21:15:52
от Ivanushkka
0 Ответов
683 Просмотров
Последний ответ 06-06-2012, 12:18:59
от STRIJ
18 Ответов
3704 Просмотров
Последний ответ 18-11-2013, 22:13:34
от listik
0 Ответов
674 Просмотров
Последний ответ 23-02-2015, 12:51:57
от Вадим Костин