Кнопка “Добавить в Facebook” копирует часть текста записи в виде кракозябр

👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

С недавних пор при использовании кнопки “Добавить в Facebook” кусок текста записи копируется в виде кракозябр.

Код кнопки:

<a rel="nofollow" target="blank" href="http://www.facebook.com/sharer.php?u="></a>Почему?
Создай свой первый сайт на WordPress

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

  1. Наверное потому что сайт отдает текст не в UTF-8. В .htaccess есть указание кодировки?

    AddDefaultCharset UTF-8

    В wp-config.php прописана кодировка базы данных?

    define('DB_CHARSET', 'utf8');
    Ответить
  2. Кстати, в Google Buzz у вас тоже в виде квадраиков отдает текст, а в Twitter вообще отказывается отправлять. Проверьте на наличие ошибок.

    Ответить
  3. vollirik автор

    1. Все параметры в перечисленных файлах указаны.
    2. Ошибку выдает только IE. Попробовал скопировать кусок из вашей статьи – https://n-wp.ru/kak-sdelat-panel-s-sotsialnyimi-knopkami/ Результат такой же.

    Ответить
  4. vollirik автор

    У вас, кстати, тоже не работает ссылка на twitter в IE. Проверил.

    Ответить
  5. Ruslan

    А вот это попробуйте, я так у себя использую:

    href="http://facebook.com/share.php?u=<?php the_permalink() ?>&t=<?php echo urlencode(the_title('','', false)) ?>"
    
    href="http://twitter.com/share?text=<?php echo urlencode(the_title('','', false)) ?>&url=<?php the_permalink() ?>"
    Ответить
  6. vollirik автор

    Ruslan, с Twitter’ом в IE помогло, а вот с Facebook’ом нет:-(

    Ответить
    1. Ruslan

      Попробуйте временно отключить one in all seo pack, отключите и проверьте, возможно это из-за него

      Ответить
      1. vollirik автор

        Пробовал. Не помогает. Но заметил одну особенность. Более старые записи отображаются нормально, а свежие – нет. Может что-то хостер намудрил? Как проверить?

        Ответить
      2. vollirik автор

        К примеру, вот что PHPMyAdmin показывает:

        Сопоставление соединения с MySQL – “utf8_general_ci”

        И далее MySQL – “MySQL-кодировка: UTF-8 Unicode (utf8)”

        Ответить
        1. Ruslan

          у меня вот эта подпись берётся из поста, возмжно и у вас эти кракозябры берутся от туда-же, попробуйте открыть файл single.php с помощью notepad++ и посмотреть и кодировку, должна быть UTF-8 без DOM
          [img]http://lh4.ggpht.com/_lQOZbCjTXW8/S-u4LvHyx-I/AAAAAAAAAJY/1w2kT4aWePM/notepad-utf-8-without-bom.png[/img]

          Ответить
          1. vollirik автор

            У меня ANSI

            Ответить
            1. Ruslan

              Преобразуйте в UTF-8 без BOM
              и такое лучше проделать со всеми файлами темы.
              Статья по теме: dimox.name/utf-8-without-bom/

              Ответить
              1. vollirik автор

                Notepad++ не хочет преобразовывать. Нажимаю пункт преобразовать, сохраняю файл, закрываю, снова открываю и вижу былую кодировку ANSI

                Ответить
                1. Sergey Biryukov

                  Если в файле нет русских букв, то эти кодировки равнозначны. Проблема, скорее всего, в другом, но я пока не понял, в чём именно :)

                  Ответить
                  1. vollirik автор

                    У меня после этих преобразований вообще сайта накрылся:-(((

                    Ответить
                    1. Sergey Biryukov

                      Верните всё как было :)

                2. Ruslan

                  можно сделать так: ctrl+a, ctrl+x, “Кодировать в UTF-8(без BOM)”, ctrl+c, ctrl+s =)

                  Ответить
                  1. Ruslan

                    можно сделать так: ctrl+a, ctrl+x, “Кодировать в UTF-8(без BOM)”, ctrl+v, ctrl+s =)

                    Ответить
      3. vollirik автор

        Такое ощущение, что именно при добавлении записи в базу происходит какая-то ошибка.

        Ответить
  7. Sergey Biryukov

    Попробуйте включить в All-in-One SEO Pack автоматическое создание тега description для всех страниц — если он есть, то Facebook берёт текст оттуда. На главной он есть, и её добавление происходит корректно: http://www.facebook.com/sharer/sharer.php?u=http://zashitnik.com/

    Ответить
    1. vollirik автор

      Да, это помогло! Только непонятно почему:-)

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

      Ответить
    2. Ruslan

      у меня facebook берёт текст из поста:
      streetball.name/krossovki-me8-empire

      Ответить
      1. vollirik автор

        Поэтому и странно. У меня ведь по началу тоже брал, а потом вдруг перестал.

        Ответить
        1. Sergey Biryukov

          Предполагаю, что Facebook «спотыкается» о некорректный символ в заголовке «В Новгородской области закон улыбается тол�…» на вкладке «Статистика» и не может интерпретировать страницу как UTF-8.

          Такие символы появляются, когда строка обрезается при помощи функции substr() вместо mb_substr().

          Ответить
          1. vollirik автор

            Это виджет плагина FireStat, который я использую с самого начала. В нем довольно обширная статистика собралась за время существования блога, поэтому не отключаю виджет. Иные плагины, ведущие статистику просмотров, пишут данные в собственные базы, и начинают делать это с момента установки.

            Пробовал копаться в файлах FireStat, но заблудился.

            Ответить
          2. vollirik автор

            И кстати, я сегодня пробовал его отключать. Результата не принесло. Более того, он был включен и в том время, когда появлялись более ранние записи и с которыми проблем не было.

            Ответить
          3. vollirik автор

            А вот сейчас отключил FireStat вообще и выключил автоматическое создание тега description в All-in-One SEO Pack, и стало еще смешнее.

            Ответить
            1. Sergey Biryukov

              Н-да. Но кодировка, что интересно, в слове «Комментарий» правильная :)

              Ответить
              1. vollirik автор

                Я сдаюсь:-(

                Ответить
                1. Ruslan

                  проделали для всех файлов темы, то что я предлагал?: https://n-wp.ru/knopka-dobavit-v-facebook-kopiruet-chast-teksta-zapisi-v-vide-krakozyabr/#comment-21285

                  Ответить
                  1. vollirik автор

                    Да, для абсолютно всех, кроме ru_RU.mo

                    Ответить
                    1. Ruslan

                      Хах)) Кажется я нашёл))
                      Слэш в конце адреса всё портит)) Можно в ЧПУ настроить)

                    2. vollirik автор

                      И вот как теперь не верить фразе “Все гениальное просто”:-)

                      Огроменное спасибо, Руслан!

                      Работает.

  8. Vadim V

    Супер ребята, со слешем ссылки работают! Только у меня вопрос куда это прописать, чтоб автоматом работало? Например помимо кнопок у меня плагин официальный фейсбука стоит, там виджет рекомендации, так вот раньше там все гуд было, а недавно часть нормально, часть крякозябры.

    Я как раз по этому виджету заметил что что-то не так. Потом заметил что кнопка фейсбука поделится и лайк тоже самое крякозябры генрят. В общем, подскажите пожалуйста как сделать чтоб все было гуд?

    Ответить
    1. Vadim V

      Решил вопрос с помощью изменения адреса ссылок /%category%/%postname%.html
      и плагина для дописывания страницам окончание .html

      Плагин Page_Htm.

      Ответить
×
WPShop
честная партнерка!

Зарабатывай до 3225₽ с каждой продажи

Подключиться
к партнерке ⟶