Я работаю над виджетами WordPress, и все примеры имеют огромные фрагменты HTML / PHP, смешанные, и их невозможно прочитать, поэтому в интересах попытки очистить вещи я хотел бы переместить весь HTML-рендеринг в отдельный PHP-файл, который будет include()
'd.
Хитрость к этому заключается в том, что файл, который я включаю, похоже, не имеет доступа к $this
и я не уверен, как это исправить.
widget.php
class Preorder extends WP_Widget { ... function form() { include('form.php'); } }
вclass Preorder extends WP_Widget { ... function form() { include('form.php'); } }
form.php
<p> <?php echo $this->get_field_id('title'); ?> </p>
Который приводит к [31-Aug-2011 19:59:19] PHP Fatal error: Call to a member function get_field_id() on a non-object in ...
так ясно, что $this
не получается бесплатно. Я попробовал aliasing $this
для другой переменной и даже просто для удовольствия, используя ключевое слово global
без успеха.
Надеюсь, я пропустил что-то легкое.
Забыл, что я повторяю каталог и include
каждый файл .php, переименованный form.php в form.tmpl и, похоже, работает.
Durr.