Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
Хао.
Сразу скажу, проблема не моя, я просто помогаю.
Есть у человека хостинг, на нём Wordpress, на котором сайт.
Некоторое время назад что-то хостеры накрутили, после чего содержимое постов (именно содержимое, заголовок и теги спокойно кириллицей пишутся) перестало отображаться, если там есть хоть одна русская буква.
На все вопросы, хостер посылает читать про htrmlspecialchars().
В общем, попросили глянуть.
К чему пришли:
1) Содержимое поста выводит the_content(), описанная в wp-includes/post-template.php и вызываемая из файла темы.
В случае наличия кириллицы, the_content возвращает пустоту.
2) the_content() получает данные из get_the_content(), которая описана в том же файлике. Если есть русские буквы, то get_the_content() также передаёт пустоту.
3) get_the_content() получает данные из get_post(), которая описана в wp-includes/post.php. И которая, тоже возвращает пустоту, если есть хоть единая русская буковка.
4) В get_post() данные попадают из переменной $GLOBALS['post'], которая является объектом.
Если есть русские буквы, то при выводе print_r($GLOBALS['post']) мы получаем вот такое
читать дальше
То бишь, в post_content получаем пустоту.
---------------------------------------------
Собсно тут я в тупике и у меня вопрос - в каком месте/файле данные из поста попадают в $GLOBALS['post']?
Собсно, куда лезть-то, чтобы решить вопрос с отображением кириллических символов?
Ибо сейчас человеку приходится вставлять содержимое постов картинками, что дичайший бред конечно, но альтернатив нет пока не разберёмся где проблема.
Сразу скажу, проблема не моя, я просто помогаю.
Есть у человека хостинг, на нём Wordpress, на котором сайт.
Некоторое время назад что-то хостеры накрутили, после чего содержимое постов (именно содержимое, заголовок и теги спокойно кириллицей пишутся) перестало отображаться, если там есть хоть одна русская буква.
На все вопросы, хостер посылает читать про htrmlspecialchars().
В общем, попросили глянуть.
К чему пришли:
1) Содержимое поста выводит the_content(), описанная в wp-includes/post-template.php и вызываемая из файла темы.
В случае наличия кириллицы, the_content возвращает пустоту.
2) the_content() получает данные из get_the_content(), которая описана в том же файлике. Если есть русские буквы, то get_the_content() также передаёт пустоту.
3) get_the_content() получает данные из get_post(), которая описана в wp-includes/post.php. И которая, тоже возвращает пустоту, если есть хоть единая русская буковка.
4) В get_post() данные попадают из переменной $GLOBALS['post'], которая является объектом.
Если есть русские буквы, то при выводе print_r($GLOBALS['post']) мы получаем вот такое
читать дальше
То бишь, в post_content получаем пустоту.
---------------------------------------------
Собсно тут я в тупике и у меня вопрос - в каком месте/файле данные из поста попадают в $GLOBALS['post']?
Собсно, куда лезть-то, чтобы решить вопрос с отображением кириллических символов?
Ибо сейчас человеку приходится вставлять содержимое постов картинками, что дичайший бред конечно, но альтернатив нет пока не разберёмся где проблема.
У меня такое было при переходе со старой версии вордпресса на новую. Помогло сделать откат изменений, прочитать внимательно ветку форума на русскоязычном сайте вордпресса о том, как ставить новую версию, чтобы не было проблем с кириллицей (поиском нашлось с первой попытки), и установить заново так, как там и советовали.
Просто пришло уведомление от хостера, что были какие-то работы и если что - гоу читать про htmlspecialchars.
Неделю назад всё ещё фурычило. А сейчас такая вот попа.
Но на всякий случай всё же почитаю, что там в плане ошибок обновления. Может что поможет.
А что до проблемы - то 99,(9)%, что именно хостеры виноваты и не включили у себя поддержку кириллицы.
Это содержимое постов вообще не отобржается. Даже кракозябликов нет. Просто пустота, если хоть один символ русский есть в содержании поста.
Судя по ответу хостера, возможно, кириллическую кодировку в постах теперь надо задавать через charset принудительно. Еще есть вариант, что надо поменять шрифт, хотя это и маловероятно, но в связи со шрифтом одно время выдавался похожий глюк. Или все-таки доставать хостера, чтобы сказал, что он там накрутил.
возможно, кириллическую кодировку в постах теперь надо задавать через charset принудительно.
То есть? Я чёт туплю, о чём речь, куда что вставлять.
Проблема ж не в сбитой кодировке (оно ж даже если не та кодировка, должно отображать хоть кракозяблики), а в том что оно вообще никак не кажет себя.(
Если входная строка string содержит неверную последовательность символов в указанной кодировке charset и флаг ENT_IGNORE не установлен, то htmlspecialchars() вернет пустую строку.
Собственно, погуглила то, что вам хостер сказал гуглить. Не факт, что причина в этом, но хостер может думать, что в этом...