Estoy trabajando en un widget de WordPress y todos los ejemplos tienen enormes fragmentos de HTML/PHP entremezclados y es imposible de leer, por lo que, con el fin de tratar de limpiar las cosas, me gustaría mover toda la representación de HTML a un lugar separado. archivo PHP que será include()
‘d.
El truco para esto es que el archivo que incluyo no parece tener acceso a $this
y no estoy seguro de cómo solucionarlo.
widget.php
class Preorder extends WP_Widget {
...
function form() {
include('form.php');
}
}
formulario.php
<p>
<?php echo $this->get_field_id('title'); ?>
</p>
Lo que resulta en [31-Aug-2011 19:59:19] PHP Fatal error: Call to a member function get_field_id() on a non-object in ...
tan claramente $this
no viene gratis. He intentado alias $this
a otra variable e incluso solo por diversión usando el global
palabra clave sin éxito.
Espero haberme perdido algo fácil.
Ese código debería funcionar. Si el código es exactamente como se muestra arriba,
$this
sería accesible en form.php. Probablemente algo más esté pasando en otro lugar.– mfonda
31 de agosto de 2011 a las 20:07
De acuerdo con mfonda, el código anterior debería funcionar. Hago exactamente lo mismo en muchos proyectos.
– Bazzz
31 de agosto de 2011 a las 20:11
Gracias por la verificación de cordura, muchachos, resolvieron el problema.
– Tivac
31 de agosto de 2011 a las 20:14