Я начал разработку пользовательской темы для wordpress, и я заметил очевидную ошибку, которая мне кажется странной, учитывая «размер» и популярность Wordpress.Wordpress непоследовательный синтаксический анализ «имя шаблона: xxx» в файлах шаблонов
Wordpress использует соглашение, чтобы файлы, названные как page_mytemplatename.php, считались «шаблонами страниц» и анализировались для заполнения раскрывающегося списка «Шаблон» в параметрах редактирования страницы.
Известно, предназначенный и документально подтверждено, что писать комментарий в шаблоне страницы файла с указанием
/* Template Name: myCustomTemplateNameHere */
говорит WordPress, чтобы добавить «myCustomTemplateNameHere» в раскрывающемся меню.
Теперь ... Я бы предположил, что Wordpress будет достаточно умным, чтобы искать шаблон «Шаблонное имя: xxxx» только в первом комментарии (и только если первый комментарий является первым делом в файле .php !), но вместо этого я обнаружил, что пишу «имя шаблона: xxxxxxx» где-то в ЛЮБОЙ шаблон ИЛИ в любом файле, который ВКЛЮЧЕН с помощью директивы 'include' или 'require', заставляет wordpress фактически заполнять меню с помощью мусора, который хранится после двоеточия , даже сам php-код!
, например, заявление, как это, в середине файла, даже косвенно, включенным «включают» директивы
echo "current template name: " . $tpl_name;
вызовет появление "$ tpl_name;.! Шаблона в раскрывающемся списке
на мой взгляд, это кажется совершенно unckecked и может привести к проблемам безопасности в WordPress! это потенциально может привести к какой-то инъекции, даже ты, я должен признать, что это было бы сложно попасть ...
в любом случае , тот факт, что мы, похоже, не бесплатно, чтобы написать комментарий как
/* writing template name: namehere would cause wordpress to populate a dropdown */
или даже писать код, содержащий последовательность символов «Название шаблона: хххх» фактически не вызывает побочный эффект звучит как ошибка для меня.
также, я заметил, что это происходит даже в том случае, если имя шаблона: xxxx написано внутри включенных или необходимых файлов ... почему это происходит. делает ли wordppress синтаксический анализ ВСЕХ файлов или даже ищет включает и анализирует включенные файлы? это показалось бы сложным и ужасно неправильным для меня!
Мне удалось показать свою точку зрения?
Я бегу WordPress 4.3.1 (довольно много позднее на момент написания этой статьи)
может кто-то подтвердить, что это ошибка, я должен иметь в виду, в то время как я пишу мою тему?
спасибо.
Вы правы, это, очевидно, способ написания кода ... Я все еще подозреваю, что такое поведение можно считать непоследовательным. это «не ошибка», что в раскрывающемся списке «Выбор шаблона» есть записи, которые не являются шаблонами? ... это звучит противоречиво для меня. Ключевая фраза «Имя шаблона:» не документирована как запрещенная, но ее использование позволяет выбирать несуществующие шаблоны, которые, в свою очередь, заставляют страницу показывать белые без ошибок. WP является популярной CMS, если все функции были написаны таким образом, это было бы полным беспорядком. Вам не кажется, что стоит опубликовать отчет об ошибке в команде WP dev? – Leo128
@ Leo128- Я бы сказал, иди за ним. Мне было бы интересно посмотреть, что они говорят/делают с ним. –
O 'the lally ... Мне не удалось получить учетную запись в wordpress trac. для этого требуется учетная запись на wordpress.org, но, верите в это или нет, получение одного - определенно не тривиальная задача. Может ли кто-нибудь отправить отчет об ошибке от моего имени? или предложить альтернативный маршрут? Спасибо – Leo128