带有ACF的Wordpress小部件不显示值

时间:2017-08-21 15:17:13

标签: php wordpress widget advanced-custom-fields

我已根据此代码here创建了自定义窗口小部件。但是,当我尝试在前端显示ACF values并且它们没有显示时。我应该在“清理小工具”部分编辑某些内容吗?

/**
 * Adds custom widget.
 */

class Custom_Widget extends WP_Widget {

//Register widget with WordPress.
function __construct() {
    parent::__construct(
      'custom_widget', // Base ID
      __('Social Links', 'text_domain'), // Name
      array( 'description' => __( 'Social links for menu', 'text_domain' ), ) // Args
    );
}

//Front-end display of widget.
public function widget( $args, $instance ) {
    echo $args['before_widget'];?>
    <ul>
        <li><a href="<?php the_field('twitter_link', 'widget_' . $widget_id); ?>">twitter</a></li>
        <li></li>
    </ul>
    <?php echo $args['after_widget'];
}

//Back-end widget form.
public function form( $instance ) {


}

//Sanitize widget form values as they are saved.
public function update( $new_instance, $old_instance ) {
    $instance = array();
    $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';

    return $instance;
    }
}

// register Custom_Widget widget
add_action( 'widgets_init', function(){
    register_widget( 'Custom_Widget' );
});

在前端打印出来:

<section id="custom_widget-2" class="widget widget_custom_widget">
    <ul>
        <li><a href="">twitter</a></li>
        <li></li>
    </ul>
</section>  

我正在使用ACF添加我的值,您可以在此处看到: enter image description here

这是我保存数据的小部件: enter image description here

1 个答案:

答案 0 :(得分:0)

请尝试以下操作,看起来好像未正确返回小部件ID:

//Front-end display of widget.
public function widget( $args, $instance ) {
    echo $args['before_widget'];?>
    <ul>
        <li><a href="<?php echo get_field('twitter_link', 'widget_' . $args['widget_id']); ?>">twitter</a></li>
        <li></li>
    </ul>
    <?php echo $args['after_widget'];
}