WordPress小部件开发 – 未定义索引和其他问题
我正试图从头开发我的第一个wordpress主题。 它包括一个小部件,它基本上应该在相应的侧边栏中显示video,一旦它在视野中就开始播放。 我使用jquery.inview.js
来检查video是否是video。 小部件应该为video链接提供一些选项。 我想它远离最佳实践和干净的代码,但任何帮助都在这里赞赏:
-
当我第一次添加小部件时,我得到一个
undefined index
错误,对于这两个复选框。 它在第一次保存后消失了。 我在这里想念的是什么? -
如何实现
正确显示复选框状态。 这是一个非常普遍的问题,但我被困在这里。
-
最后,我想从媒体库中获取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'); } });
替换为您的代码
/>
/>