我注册样式表并将其加入队列,但未呈现任何内容

时间:2016-05-04 作者:Digital Brent

我被告知,在WordPress中注册和排队样式和脚本非常重要,尽管这真的很痛苦。

我对脚本没有问题,但是当我尝试样式时,WordPress在样式表的代码中没有显示任何内容。我想养成以正确的方式构建主题的习惯,因此我想了解如何做到这一点,但我不明白为什么在添加脚本时没有将css添加到代码中。请参见下面的函数文件代码:

<?php

function alpha_scripts(){

  $script = get_template_directory_uri() . \'/assets/scripts/\';

  wp_register_script(\'bootstrap-js\', $script . \'bootstrap.min.js\', array(\'jquery\'),\'\', false);

  //wp_enqueue_script(\'jquery\');
  wp_enqueue_script(\'bootstrap-js\');
}

function alpha_styles(){

  $style = get_template_directory_uri() . \'/assets/styles/\';

    wp_register_style(\'bootstrap-css\', $style . \'bootstrap.min.css\',\'\',\'\', \'screen\');
    wp_register_style(\'alpha-css\', $style . \'alpha.css\',\'\',\'\', \'screen\');

    wp_enqueue_style(\'bootstrap-css\');
    wp_enqueue_style(\'alpha-css\');
}

function alpha_menus() {
  register_nav_menus(
    array(
      \'main-menu\' => __( \'Primary Menu\' ),
      \'footer-menu\' => __( \'Footer Menu\' )
    )
  );
}

add_action(\'wp_enqueue_scripts\', \'alpha_scripts\');
add_action(\'wp_enqueue_styles\', \'alpha_styles\');
add_action(\'after_setup_theme\', \'alpha_menus\');

?>
我做错了什么?我尝试过对url使用不同的引用,比如get_template_directory_uri()get_stylesheet_directory_uri() 但正如我所怀疑的那样,这两个人并没有什么不同。

1 个回复
最合适的回答,由SO网友:Tim Malone 整理而成

你做得很好——只有一件事你需要改变,我认为这是一个完全合理的错误:

这是:

add_action(\'wp_enqueue_styles\', \'alpha_styles\');
需要成为

add_action(\'wp_enqueue_scripts\', \'alpha_styles\');
为什么scripts? 因为没有调用Wordpress操作wp_enqueue_styles. 虽然函数名为wp_register_style &;wp_enqueue_style, 您仍然需要将它们连接到多用途wp_enqueue_scripts 行动

是的,WP core可能只需添加第二个操作即可避免此问题的发生…:)

虽然一开始可能会很痛苦,但一旦你了解排队是如何工作的,这将为你将来节省大量时间。有几个好处:依赖关系可以很容易地管理;您的脚本(&A);样式将跨多个页眉和页脚运行(如果有);以及与脚本挂钩的插件&;样式(例如连接/缩小样式)可以完成它们的工作。

相关推荐