Wordpress CSS样式表不影响小部件的输出

时间:2018-07-22 04:49:20

标签: php html css wordpress widget

所以我对Wordpress开发还很陌生,所以请不要生气,如果我做过一些愚蠢的事情,我感到抱歉。

所以我在使用CSS时遇到了麻烦,由于某种原因,它没有影响小部件内容的输出,这可以在movieposterdisplay-class文件中看到。我想做的是使用CSS使输出的youtube视频自动调整大小以适合容器。我想知道的是CSS为什么不影响HTML代码以及解决该问题的解决方案。

到目前为止,我尝试使用!important,以防wordpress主题覆盖CSS,但问题必须与其他问题有关。在此先感谢您的帮助。

movieposterdisplayfile

require_once(plugin_dir_path(__FILE__).'/includes/movieposterdisplay- 
  scripts.php');

require_once(plugin_dir_path(__FILE__).'/includes/movieposterdisplay- 
  class.php');

function register_movieposterdisplay(){
  register_widget('Movie_Poster_Display_Widget');
}

add_action('widgets_init', 'register_movieposterdisplay');

movieposterdisplay-scripts文件

<?php
function mpd_add_scripts(){

wp_enqueue_style('mpd-main-style', plugins_url().'/movieposterdisplay/css/style.css');

wp_enqueue_script('mpd-main-style', plugins_url().'/movieposterdisplay/js/main.js');
}

add_action('wp_enqueue_scripts', 'mpd_add_scripts');

movieposterdisplay-class文件(该文件包含小部件输出)

<?php
class Movie_Poster_Display_Widget extends WP_Widget {

function __construct() {

parent::__construct(
  'movieposterdisplay_widget', // Base ID
  esc_html__( 'Movie Widget', 'mpd_domain' ), // Name  
  array( 'description' => esc_html__( 'Displays Movie/TV posters, overviews and trailers.', 'mpd_domain' ), ) 
  );
}

public function widget( $args, $instance) {
echo $args['before_widget']; 

  $trailer_key ="http://www.youtube.com/embed/" .$this->display_trailer($instance, $first_movie_result)."?enablejsapi=1";
  ?>

  <div class="youtubeplayer">
    <iframe 
    id="player" type="text/html"
    src="<?php echo $trailer_key;?>"
    frameborder="0" allowfullscreen="allowfullscreen">
    </iframe>
  </div>
  <?php 
echo $args['after_widget'];
} 

style.css

.youtubeplayer {
  position: relative !important;
  padding-bottom: 75% !important; 
  padding-top: 25px !important;
  height: 0 !important;
  border: 5px solid red !important;
}

.youtubeplayer iframe {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

1 个答案:

答案 0 :(得分:0)

问题是由于movieposterdisplay-scripts文件中的文件路径不正确。虽然文件已正确加载到主php文件中  require_once(plugin_dir_path(__FILE__).'/includes/movieposterdisplay- class.php'); 因为它已经分配了正确的插件文件夹名称。由于代码为wp_enqueue_style('mpd-main-style', plugins_url().'/movieposterdisplay/css/style.css');,因此无法正确排队,并且我之前已更改了文件夹名称。

因此,我认为它可以正确加载并运行正常,但是它只能正确加载。