回声未在wordpress小部件中显示文本

时间:2018-07-02 15:56:31

标签: php wordpress

因此,我正在尝试制作一个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'];
}

1 个答案:

答案 0 :(得分:0)

必须将$instance传递到$movie_search方法中。因此该行应该为public function movie_search($instance),因为该变量不是我最初认为的全局变量,而是一个空变量。还需要在电影搜索方法的最后一行添加return $movie_search

因此,我不得不将第10行更改为echo $this->movie_search($instance)