WordPress 自定义小部件 - 模板标签输出在错误的位置

发布于 2024-11-07 13:32:38 字数 832 浏览 0 评论 0原文

我正在尝试编写一个简单的自定义小部件,允许用户注册特别优惠。因此,对于我的表单的“操作”,我希望它读取 action=" bloginfo('template_directory') . '/theme/php/handler.php'" 但每次我引用 bloginfo 标记时,输出都会被抛出到

  • 用于小部件。
  • 示例位于 http://shineaz.com - 底部右侧边栏。

    这是我的函数 widget():

    function widget($args, $instance) {
        // outputs the content of the widget
        extract( $args, EXTR_SKIP);
        $args['title'] = isset($instance['title']) ? $instance['title'] : 'Sign up for Special Offers';
    
        echo $before_widget;
        echo $before_title . $args['title'] . $after_title;
        echo '<form id="special_offers" method="post" action="' . bloginfo('template_directory') . '/custom/php/special-offer-handler.php">
            </form>';
        echo $after_widget;
    }
    

    谢谢

    I'm trying to write a simple custom widget that allows users to sign up for special offers. So for the "action" of my form, I want it to read action=" bloginfo('template_directory') . '/theme/php/handler.php'" but everytime I reference the bloginfo tag, the output is thrown outside the <li> for the widget.

    Example is on http://shineaz.com - right hand sidebar at the bottom.

    Here is my function widget():

    function widget($args, $instance) {
        // outputs the content of the widget
        extract( $args, EXTR_SKIP);
        $args['title'] = isset($instance['title']) ? $instance['title'] : 'Sign up for Special Offers';
    
        echo $before_widget;
        echo $before_title . $args['title'] . $after_title;
        echo '<form id="special_offers" method="post" action="' . bloginfo('template_directory') . '/custom/php/special-offer-handler.php">
            </form>';
        echo $after_widget;
    }
    

    Thanks

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

    评论(1

    仅一夜美梦 2024-11-14 13:32:38

    您应该更改它以返回值,而不是 echo:

    function widget($args, $instance) {
    // outputs the content of the widget
    extract( $args, EXTR_SKIP);
    $args['title'] = isset($instance['title']) ? $instance['title'] : 'Sign up for Special Offers';
    
    return $before_widget;
    return $before_title . $args['title'] . $after_title;
    return '<form id="special_offers" method="post" action="' . bloginfo('template_directory') . '/custom/php/special-offer-handler.php">
        </form>';
    return $after_widget;
    }
    

    然后使用 echo widget(); 来回显模板中的小部件

    You should change it to return the values, instead of echo:

    function widget($args, $instance) {
    // outputs the content of the widget
    extract( $args, EXTR_SKIP);
    $args['title'] = isset($instance['title']) ? $instance['title'] : 'Sign up for Special Offers';
    
    return $before_widget;
    return $before_title . $args['title'] . $after_title;
    return '<form id="special_offers" method="post" action="' . bloginfo('template_directory') . '/custom/php/special-offer-handler.php">
        </form>';
    return $after_widget;
    }
    

    then use echo widget(); to echo the widget in your template

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文