WordPress小部件开发 – 未定义索引和其他问题

我正试图从头开发我的第一个wordpress主题。 它包括一个小部件,它基本上应该在相应的侧边栏中显示video,一旦它在视野中就开始播放。 我使用jquery.inview.js来检查video是否是video。 小部件应该为video链接提供一些选项。 我想它远离最佳实践和干净的代码,但任何帮助都在这里赞赏:

  1. 当我第一次添加小部件时,我得到一个undefined index错误,对于这两个复选框。 它在第一次保存后消失了。 我在这里想念的是什么?

  2. 如何实现 正确显示复选框状态。 这是一个非常普遍的问题,但我被困在这里。

  3. 最后,我想从媒体库中获取video,并想知道最好的方法。 我试图在wordpress参考中实现这个例子,但我也有点迷失了。

非常感谢,C。

PHP

  esc_html__( 'Mediaplay with autoplay and overlay', 'text_domain' ), ) ); } /** * Front-end display of widget. * * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ public function widget( $args, $instance ) { extract( $args ); $media = $instance['media']; $poster = $instance['poster']; $link = $instance['link']; $title = $instance['title']; $intro = $instance['intro']; $loop = $instance['loop']; $autoplay = $instance['autoplay']; echo $before_widget; ?> <video id="hero-video" class="video" > <source src="" type="video/mp4" /> <!--   -->  

<a href="https://stackoverflow.com/questions/45752478/wordpress-widget-dev-undefined-index-and-other-problems/">Episode starten

<label for="get_field_id( 'Media' ) ); ?>"> <input class="widefat" id="get_field_id( 'media' ) ); ?>" name="get_field_name( 'media' ) ); ?>" type="text" value="">

<label for="get_field_id( 'Poster' ) ); ?>"> <input class="widefat" id="get_field_id( 'poster' ) ); ?>" name="get_field_name( 'poster' ) ); ?>" type="text" value="">

<label for="get_field_id( 'Link' ) ); ?>"> <input class="widefat" id="get_field_id( 'link' ) ); ?>" name="get_field_name( 'link' ) ); ?>" type="text" value="">

<label for="get_field_id( 'title' ) ); ?>"> <input class="widefat" id="get_field_id( 'title' ) ); ?>" name="get_field_name( 'title' ) ); ?>" type="text" value="">

<label for="get_field_id( 'intro' ) ); ?>"> <textarea class="widefat" id="get_field_id( 'intro' ) ); ?>" name="get_field_name( 'intro' ) ); ?>">

<input id="get_field_id( 'loop' ) ); ?>" class="checkbox" name="get_field_name( 'loop' ) ); ?>" type="checkbox" value="1" /> <label for="get_field_id( 'loop' ) ); ?>">

<input id="get_field_id( 'autoplay' ) ); ?>" class="checkbox" name="get_field_name( 'autoplay' ) ); ?>" type="checkbox" value="1" /> <label for="get_field_id( 'autoplay' ) ); ?>">

JAVASCRIPT

 /*CHECK IF VIDEOS IN VIEW */ $('video').on('inview', function(event, isInView) { if (isInView && $("video").get(0).autoplay) { console.log('is in view', event); $('video').trigger('play'); } else { console.log('out if view', event); $('video').trigger('pause'); } }); 

替换为您的代码

  

/>

/>