【问题标题】:How properly display custom widget in header with wordpress如何使用 wordpress 在标题中正确显示自定义小部件
【发布时间】:2015-02-23 07:09:47
【问题描述】:

我创建并注册了小部件。一切看起来都很酷,没有错误。但是,如果我想按名称显示小部件,例如在标题中(我正在使用自定义小部件区域),它不起作用。它创建所有 div,但不包含任何数据。如果我使用代码来显示该区域中的所有小部件 - 它可以工作。

问题:

如何按名称显示小部件?

代码:

它会显示该区域中的所有自定义小部件

<?php if ( is_active_sidebar( 'header-widget' ) ) : ?>
  <?php dynamic_sidebar( 'header-widget' ); ?>
<?php endif; ?>

Codex 说,这应该可行。但是,它没有。

<?php the_widget( 'widget_simple' ); ?>

感谢您的任何回答,抱歉英语不好。

【问题讨论】:

    标签: php wordpress widget


    【解决方案1】:

    如果您要使用 the_widget,您需要提供通常在 WordPress 小部件页面上的小部件框中提供的信息。

    所以你需要:

    <?php the_widget( 'widget_simple', $instanceData, $args ); ?>
    

    $instanceData 是您在小部件中支持的任何参数,而 $args 是您在定义侧边栏时指定的参数,例如'before_widget'、'after_widget'等

    两者都是可选的,但如果您的小部件需要一些输入(例如帖子 ID)并且您没有指定 $instanceData,那么它可能不会执行任何操作。

    例如,如果您想显示一个标准的 WordPress 文本小部件,则值为:

    <?php the_widget( 'WP_Widget_Text', array('text' => 'your text') ); ?>
    

    因为“WP_Widget_Text”是标准文本小部件的类,而“text”是指定应该显示什么测试的参数。

    【讨论】:

    • 小部件是简单的文本区域。只有简单的文字。您的代码不起作用:/
    • 我增强了答案。看看这是否更清楚。
    • 还是不行。我正在玩默认的二十三主题。我创建了名称为 widget_simple 的小部件。我还创建了自定义区域。如果可以,请查看完整代码:pastebin.com/WzusH8TG
    • 根据您的代码,您应该使用 'your text'));因为 'simple_text' 是你的实例变量。
    • 很好,我们正在取得一些进展。现在它起作用了。但是,我如何将“您的文本”更改为插入到小部件中的文本?我正在尝试使用变量,但没有成功。
    猜你喜欢
    • 2014-03-14
    • 2011-12-25
    • 2021-12-20
    • 1970-01-01
    • 2012-11-20
    • 2011-09-04
    • 1970-01-01
    • 2018-01-12
    • 2016-12-31
    相关资源
    最近更新 更多