0

我找到了一个教程http://www.makeuseof.com/tag/how-to-create-wordpress-widgets/,它展示了如何创建一个带有标题字段的基本 WP 小部件。

谁能帮我向小部件添加两个字段,以便我收集:

  • 标题
  • 内容
  • 一条链接

我想我知道如何使用它并设置它的样式。

非常感谢帮助!

事件

4

2 回答 2

4

添加到文件的代码

如果要为内容添加文本区域,可以将以下行放入function form($instance)

printf(
    '<textarea class="widefat" rows="16" cols="20" id="%1$s" name="%2$s">%3$s</textarea>',
    $this->get_field_id( 'content' ),
    $this->get_field_name( 'content' ),
    $content
);

$content你之前插入的内容在哪里。

对于文本字段,您可以将以下行放入 samen 函数中:

printf( '<p>
        <label for="%1$s">%2$s</label>
        <input class="widefat" id="%1$s" name="%3$s" type="text" value="%4$s" />
    </p>',
    $this->get_field_id( 'link' ),
    __( 'Title:', $this->language ),
    $this->get_field_name( 'link' ),
    esc_attr( $link )
);

$link你之前插入的内容在哪里。

将以下行添加到function update($new_instance, $old_instance)

$instance['content'] = $new_instance['content'];
$instance['link']    = $new_instance['link'];

将以下行添加到function widget($args, $instance)

$content = empty( $instance['content'] ) ? '' : wpautop( $instance['content'] );
$link    = empty( $instance['link'] ) ? '' : esc_attr( $instance['link'] );

if ( ! empty( $content ) )
    echo $content;

if ( ! empty ( $link ) )
    echo "<a href='$link'>$link</a>";

如果您不想自动将<p>' 添加到您的内容中,只需删除wpautop.

函数的作用

function form($instance)显示后端小
function update($new_instance, $old_instance)部件表单在保存小部件表单值时对其进行清理。
function widget($args, $instance)显示widget的前端显示

因此,如果要更改小部件设置窗口的显示,请编辑function form($instance).

希望能帮助到你!

于 2012-12-12T12:11:43.117 回答
0

非常感谢您的帮助,有一个小问题:当您保存内容时,所有内容都会从表单中消失。所以我像这样修复了解析: $instance 数组开头的新字段

function form($instance)
    {
    $instance = wp_parse_args( (array) $instance, array( 
        'title' => '',
        'bannertext' => '',
        'link' => '' 
    ) );
    $title = $instance['title'];
    $bannertext = $instance['bannertext'];
    $link  = $instance['link'];

然后制作 printf() 内容

于 2021-05-03T09:39:49.563 回答