因此,我正在尝试制作一个WordPress小部件,以回显电影输入。我已经将回声放置在小部件函数的第10行中,但是它没有回显输入。现在,我知道可以将其换出以回显$instance['movie'];
了,但是我想测试我的movie_search
方法是否有效,但事实并非如此。感谢您的任何帮助,如果这个答案真的很愚蠢,对不起,我对编码还是很陌生。
<?php
public function widget( $args, $instance) {
echo $args['before_widget'];
if (!empty( $instance['tmdbapikey'] ) ) {
echo $args['before_tmdbapikey'].apply_filters(
'widget_tmdbapikey',
$instance['tmdbapikey']
).$args['after_tmdbapikey'];
}
//widget content output
echo $movie_query;
// whatever you want to display after widget (<div>, etc)
echo $args['after_widget'];
}
public function form( $instance ) {
$tmdbapikey = !empty( $instance['tmdbapikey'] )
? $instance['tmdbapikey']
: esc_html__( '', 'mpd_domain' );
<p>
<label for="<?php echo esc_attr($this->get_field_id('movie')); ?>">
<?php esc_attr_e('movie:', 'mpd_domain'); ?>
</label>
<input
class="widefat"
id="<?php echo esc_attr( $this->get_field_id( 'movie' ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( 'movie' ) ); ?>"
type="text"
value="<?php echo esc_attr( $movie ); ?>">
</p>
这是保存输入的用户字符串的方法。
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['tmdbapikey'] = (!empty($new_instance['tmdbapikey']))
? sanitize_text_field( $new_instance['tmdbapikey'] )
: '';
$instance['movie'] = (!empty($new_instance['movie']))
? sanitize_text_field($new_instance['movie'])
: '';
$instance['size'] = (!empty( $new_instance['size']))
? sanitize_text_field($new_instance['size'])
: '';
$instance['description'] = (!empty( $new_instance['description']))
? sanitize_text_field($new_instance['description'])
: '';
return $instance;
}
电影搜索方法
public function movie_search(){
//copies inputted data to movie variable
$movie_query = $instance['movie'];
}
答案 0 :(得分:0)
必须将$instance
传递到$movie_search
方法中。因此该行应该为public function movie_search($instance)
,因为该变量不是我最初认为的全局变量,而是一个空变量。还需要在电影搜索方法的最后一行添加return $movie_search
。
因此,我不得不将第10行更改为echo $this->movie_search($instance)
。