在小部件中使用GET_TEMPLATE_PART()并传递变量

时间:2015-06-30 作者:Ahmed Saad

我读到了get_template_part() 应该只由主题而不是插件使用,我不知道在小部件功能(由主题创建)中使用它是否被视为插件。

无论如何,我试图将小部件变量($myvar)传递给模板(\'loop.php\'),但即使使用global $myvar; 在模板内部。

以下是我的小部件功能代码:

function widget($args, $instance) {
    extract( $args );
    $title = apply_filters(\'widget_title\', $instance[\'title\']);
    echo $before_widget;
    if ($title) { echo $before_title.$title.$after_title; }
    $myvar = \'start\';
    get_template_part(\'loop\'); ?>
    echo $after_widget;
}

2 个回复
SO网友:cjbj

的确get_template_part 只在主题中使用,但会在主题中包含小部件。Looking at the source code 在函数中,您会看到,出现这种情况的主要原因是get_template_part 在调用之前做一些与主题相关的额外工作locate_template 以非默认方式。

也就是说,从小部件调用它应该没有问题,所以问题很可能是loop.php 不在WP寻找的地方。

Refer to this answer 用于将变量传递给模板。

SO网友:gdaniel

您可以使用set_query_var(\'myvarname\', $myvarvalue); 之前get_template_part(). 然后在循环模板中,您可以使用$myvarname.

您也可以跳过所有这些并使用locate template 相反

结束

相关推荐

customize footer widgets area

我有一个自定义的页脚小部件区域,它在一行中水平显示最多4个小部件。如果我添加了4个以上的小部件,那么布局就会中断,因为我试图在同一行中显示它。我想让它更灵活,例如有2行(div),我可以在第一行中添加let’s 2 widget,在第二行中添加4个widget。可能我需要的是复制这一个,并制作两个页脚区域。这可能吗?如果可能,我如何实现?下面是我的小部件的实际代码。php: /* Footer Widgets */ $footer_widgets_num = wp_get_sidebars_