Я работаю над виджетом WordPress, и во всех примерах перемешаны огромные куски HTML / PHP, и их невозможно прочитать, поэтому в интересах очистки, я бы хотел переместить весь рендеринг HTMLк отдельному файлу PHP, который будет include()
'd.
Хитрость в том, что файл, который я включаю, не имеет доступа к $this
, и я не уверен, как это исправить.
widget.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
не приходит бесплатно.Я пытался наложить псевдоним $this
на другую переменную и даже просто для удовольствия, используя ключевое слово global
, но безуспешно.
Надеюсь, я что-то упустил.