Как заменить английские кавычки на прямые

Я уже писал о типографических символах и о том, как исправить кавычки, отключив движку возможность автоматически изменять обычные кавычки на английские (с наклоном). Дело все в том, что если вы часто публикуете элементы программного кода, то WordPress автоматически преобразует прямые кавычки в наклонные. Если этот код скопировать и где-нибудь использовать, то он окажется неработоспособным. Чтобы прямые кавычки не преобразовывались, как раз и помогает код, приведенный по ссылке. Однако у него есть один недостаток — он работает только при публикации постов, оставляя без внимания текст комментариев. Давайте сделаем так, чтобы примеры программного кода с кавычками не преобразовывались нигде, даже в комментариях.

Чтобы обычные кавычки автоматически не менялись на английские, используйте следующий код, вставив его в functions.php:

//прямые кавычки start
function strip_fancy_quotes($text = '') {
	$text = str_replace(array("‘", "’", "′"), "'", $text);
	$text = str_replace(array("“", "”", "″"), """, $text);

	return $text;
} # strip_fancy_quotes()

add_filter('category_description', 'strip_fancy_quotes', 20);
add_filter('list_cats', 'strip_fancy_quotes', 20);
add_filter('comment_author', 'strip_fancy_quotes', 20);
add_filter('comment_text', 'strip_fancy_quotes', 20);
add_filter('single_post_title', 'strip_fancy_quotes', 20);
add_filter('the_title', 'strip_fancy_quotes', 20);
add_filter('the_content', 'strip_fancy_quotes', 20);
add_filter('the_excerpt', 'strip_fancy_quotes', 20);
add_filter('bloginfo', 'strip_fancy_quotes', 20);
add_filter('widget_text', 'strip_fancy_quotes', 20);
//прямые кавычки end

Этот код предотвращает исправление кавычек в текстовых виджетах, содержимом постов, названиях постов, комментариях — в общем везде, где только можно ввести текст. Пользуйтесь!

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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

  1. FHD

    Подскажите как изменить например букву Й на W ?

    Ответить
    1. Вопрос не понял.

      Ответить
  2. FHD

    Тут показан метод как заменить английские кавычки на прямые.
    Интересует как заменить букву на букву, например все буквы "Й" заменить на "W" (замена символов).

    ПС У меня англ. тема когда сама урезает статьи, русскую большую букву "Р" отображает воросом или квадратиком. В других режимах нормально, даже когда вручную ставишь тэг more. А вот когда тема сама делает more, то получается такая интересная фишка. Потому и спрашиваю, так как русскую большую "P" хочу заменить на латинскую "P".

    ПС №2 Плагин Типограф не использую, он :
    1) грузит сайт, добавляет от 0.5сек и выше времени загрузки страницы.
    2) Делает иногда некорректное отображение форм и других вещей.

    2-й вопрос, а вы используете Типограф?

    Ответить
    1. 2. Типограф не использую.
      1. Замена кавычек не имеет ничего общего с отображением символов при сокрашении заголовков. Квадратики с вопросами появляются при сокращении заголовков специальной функцией. Посмотрите вот это обсуждение: http://mywordpress.ru/support/viewtopic.php?pid=43430#p43430

      Ответить
  3. FHD

    Не помогла статья http://mywordpress.r…..430#p43430
    Если бы узнать как заменять символы.. В типографе там сплошь и рядом заменяют. Надо бы 1 букву "Р" заменить. Или придётся вручную more проставлять.
    Эта статья про кавычки — очень похожая тема.

    Ответить
  4. zetrider
    remove_filter('the_content', 'wptexturize');
    Ответить
  5. Баф

    Подскажите, несмотря на применение этого когда в functions.php всё-равно иногда проскакивают неправильные кавычки:

    http://bafff.ru/blog/?p=3750#comment-2552 (слово «26»)

    Можно что то сделать? Правка комментария не помогает! 0_o

    Ответить
    1. Баф

      Проблема до сих пор актуальна и постоянно есть новые примеры http://bafff.ru/blog/?p=4242#comment-2781 … Не поможете?

      Ответить