Мне интересно, знает ли кто-нибудь что-нибудь об этом, так как я не могу найти любой ссылка либо на вопрос, который у меня есть, либо что-то подобное
Я использую сайт PolyLang в WP для управления 4 разными языками. У меня есть несколько пользовательских строк, настроенных через
pll_register_string( 'stringname', 'stringcontent' );
И затем я повторяю их, используя
pll_e( 'stringname' );
Теперь все работало хорошо, или я так подумал, но теперь, через пару месяцев после того, как все было настроено правильно, я вижу, что большинство моих отраженных строк отображают имя строки, а не строку.
Сначала я подумал, что проблема заключается в том, что они отображают неправильный перевод из строки, то есть, независимо от того, какой язык выбрал пользователь, код выдаёт английское значение по умолчанию. Но потом, когда я все это настраивал, я заметил, что на самом деле pll_e
а также pll__
команды выводят, по какой-то странной причине, имя строки, а не ее содержимое … Я не могу понять, почему она будет искать имя, а не содержимое …
Я могу добавить, что единственное место, где pll_e
а также pll__
Команды работают, когда я вывожу пользовательские строки перевода, которые я использую в нижнем колонтитуле сайта. Во всех других случаях я пытаюсь вывести строки в содержимом сайта, то есть в команде, которая получает сообщения и страницы … Так что я думаю, что, возможно, это что-то нарушает, или как-то PolyLang не возможность узнать, на каком языке в настоящее время активирована форма внутри команд WP, которые получают сообщения и т. д. Я думаю, что это должно работать нормально, но это не так.
Любой вклад будет высоко оценен! Как я застрял здесь …
редактировать
Я просто хотел обновить эту проблему тем, что я изучал и пытался выяснить методом проб и ошибок … ну, в общем, до сих пор ошибка, в данном случае … Я в основном обнаружил 3 специфических вещи, или, вернее, вычеркнули их из моего списка возможных причин, почему это не удается:
(1) Это не имеет ничего общего с расположением pll_e
или же pll__
Команды, как бы я их ни размещал, они все равно не работают.
(2) Проблема всегда в одном и том же зарегистрированном, потому что, если я размещу другое pll_e
или же pll__
Я знаю, что команда работает, прямо перед или сразу после того, который не работает, я вижу, что тот, который уже работает, все еще работает, а тот, который еще не работает.
(3) Это даже не проблема pll_e
или же pll__
команды, повторяющие ИМЯ моей строки, как я указывал в оригинальном заголовке, а скорее просто выводящие их без разницы Я ставлю между кавычками! т.е. если я напишу pll_e( 'stringname' );
это будет эхом stringname… если я напишу pll_e( 'pink-flying-cats' );
это будет эхом розово-пролетная кошка! Так эффективно pll_e
или же pll__
команды, очевидно, ничего не делают для этих конкретных зарегистрированных строк.
Теперь я проверил, перепроверил и еще раз проверил, что они правильно зарегистрированы. Я изменил имена строк; Я изменил строковые значения … вы называете это! Я попробовал все это, мне кажется … Однако, это все еще работает или не работает произвольно. И сейчас я застрял как никогда, если честно.
Задача ещё не решена.
Других решений пока нет …