如何以编程方式显示我的wordpress小部件?

时间:2011-06-03 13:59:02

标签: wordpress widget

我需要以编程方式在基于WP页面的自定义页面模板中显示我自定义的小部件。

这是情景:

我根据自定义页面模板创建了一个名为“product”的页面,现在我需要在其侧边栏中显示我自定义的小部件。我需要这个侧栏与其他页面完全不同这就是我想以编程方式显示它的原因。 我尝试使用 the_widget()函数,但我认为它仅适用于内置小部件,而且我不知道如何将注册了register_sidebar函数的参数传递给它,因为它似乎没有默认使用它们。

实际上我使用了这个: the_widget('WP_Widget_Search')来测试它,小部件在那里,但它忽略了主题设置,我的意思是在function.php中设置:

register_sidebar( array(
    'name' => 'Sidebar',
    'before_widget' => '<div id="%1$s" class="widget %2$s">',
    'after_widget' => '</div></div>',
    'before_title' => '<h3>',
    'after_title' => '</h3><div class="padder">'
) );

正如我所说,我不知道它是否适用于定制的小部件(在插件中创建),因为我不知道如何在那里传递小部件名称和params。怎么做?

4 个答案:

答案 0 :(得分:8)

使用the_widget()动态创建窗口小部件的动态实例,例如:

<div id="xxx" class="widget-area" role="complementary">
    <div id="sidebar-dyn">
        <?php the_widget( 'WP_Widget_Recent_Posts' ); ?>
    </div>
</div>

答案 1 :(得分:1)

为什么需要以编程方式包含自定义窗口小部件。我的意思是您只需创建另一个仅在自定义页面模板“product”上显示的侧边栏

此外,您需要为自定义页面执行此操作,甚至无需检查任何条件。只需将此代码放在您的“prdouct”页面模板文件中(您希望在其中显示侧栏“。

<?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('Product Sidebar')) ;?>

只需将您的小部件从管理面板拖到此侧边栏即可。

答案 2 :(得分:1)

如果窗口小部件有短代码,请使用以下命令调用它:

<?php echo do_shortcode( $content ) ?>

答案 3 :(得分:0)

你的问题对我来说并不完全清楚,但我收集的是那个 1.你需要注册你的小部件和 2.您只需要在产品页面上显示它。

进行注册,将其放在functions.php中(您的函数文件中可能已经有第一行):

<?php
if ( function_exists('register_sidebar') )
register_sidebar(array(
'name'=> 'Product Sidebar',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div></div>',
'before_title' => '<h3>',
'after_title' => '</h3><div class="padder">'
));
?>

这将是包含在sidebar.php中的代码,仅在名为“Product”的页面上显示以上内容。

<?php if (is_page('Product')) ;?>
<?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('Product Sidebar')) ;?>
<?php endif; ?>