我已根据此代码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>
答案 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'];
}