好吧,如果您坚持使用get\\u template\\u part,我看到的唯一解决方案是在小部件的widget()函数中定义一个全局变量,并将其设置为true或其他值。
在小部件中调用get\\u template\\u part后,将此变量设置为false。在模板中检查该变量,如果为真,则表示您在小部件中。
更好的方法是使用locate_template
然后你自己做。这样,您就可以控制模板中公开的变量,从而可以将普通变量传递给模板:
$_located = locate_template(\'template-name\', false, false);
$in_widget = true; // not global :D
// load it;
// any variables you have here will also be available in your template
if($_located)
require $_located;
在模板中:
if(isset($in_widget)){
//
}
另一种方式,不使用该上下文变量:
if(isset($this) && ($this instanceof YourWidgetClass)){
//
}