【问题标题】:Function PHP File and WP Enqueue Code Error函数 PHP 文件和 WP Enqueue 代码错误
【发布时间】:2019-11-13 06:31:33
【问题描述】:

我正在尝试将 HTML 静态主题转换为 Wordpress 主题。我需要一些关于 php 代码错误的帮助。我正在尝试将 CSS 文件包含到我的 Function.php 文件中,但可能存在错误。

我尝试使用 developer.wordpress.com“function.php 包含 css 文件”线程中的一些代码,但它们不起作用。所以,我需要你的帮助才能做得更好。

<?php
function add_theme_scripts() {
    wp_enqueue_style( 'animate', get_template_directory_uri() . 'animate.css',false,'1.1','all');
    wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/bootstrap.css', false, '1.1', 'all');
    wp_enqueue_style( 'flexslider', get_template_directory_uri() . 'flexslider.css',false,'1.1','all');
    wp_enqueue_style( 'icomoon', get_template_directory_uri() . '/css/icomoon.css',false,'1.1','all');
    wp_enqueue_style( 'magnific-popup', get_template_directory_uri() . '/css/magnific-popup.css',false,'1.1','all');
    wp_enqueue_style( 'owl.carousel.min', get_template_directory_uri() . '/css/owl.carousel.min.css',false,'1.1','all');
    wp_enqueue_style( 'owl.theme.default.min', get_template_directory_uri() . '/css/owl.theme.default.min.css',false,'1.1','all');
    wp_enqueue_style( 'style', get_template_directory_uri() . '/css/style.css',false,'1.1','all')
    wp_enqueue_script( 'bootstrap.min', get_template_directory_uri() . 'js/bootstrap.min.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'google_map', get_template_directory_uri() . '/js/google_map.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'jquery.countTo', get_template_directory_uri() . '/js/jquery.countTo.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'jquery.easing.1.3', get_template_directory_uri() . '/js/jquery.easing.1.3.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'jquery.flexslider-min', get_template_directory_uri() . '/js/jquery.flexslider-min.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'jquery.magnific-popup.min', get_template_directory_uri() . '/js/jquery.magnific-popup.min.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'jquery.min', get_template_directory_uri() . '/js/jquery.min.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'jquery.stellar.min', get_template_directory_uri() . '/js/jquery.stellar.min.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'jquery.waypoints.min', get_template_directory_uri() . '/js/magnific-popup-options.min.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'main', get_template_directory_uri() . '/js/main.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'owl.carousel.min', get_template_directory_uri() . '/js/owl.carousel.min.js', array ( 'jquery' ), 1.1, true);
    wp_enqueue_script( 'respond.min', get_template_directory_uri() . '/js/respond.min.js', array ( 'jquery' ), 1.1, true);
}
add_action( 'wp_enqueue_scripts', 'add_theme_scripts' );
?>

我的主题和functions.php中的代码结构如上。在我的主题中,有一些 .sass-cache 文件和 sass 文件。是因为这个吗?

编辑:主要问题是functions.php 文件没有获取资产的路径。例如:http://localhost/b2w/js/bootstrap.min.js 是浏览器显示的路径,但它应该类似于http://localhost/b2w/wp-content/themes/fitpandas/js/bootstrap.min.js

这就是为什么所有资产在 Chrome 开发工具/网络部分都有 404 状态代码的原因。

【问题讨论】:

  • functions.php 不是function.php
  • 你有那些 CSS 文件吗?所有这些代码都指向theme_folder/css/cssfile 文件
  • 是的,它是我文件夹中的functions.php。是的,我有所有文件。这是一个免费的引导 html 主题文件,我正在尝试将其转换为 php 主题。

标签: php wordpress


【解决方案1】:

确保正确命名文件。是functions.php 而不是function.php

https://developer.wordpress.org/themes/basics/theme-functions/

更新

另外,根据文档,第三个参数应该是 array 而不是 boolean

https://developer.wordpress.org/reference/functions/wp_enqueue_style/

例如,第一个入队的代码是:

wp_enqueue_style( 'animate', get_template_directory_uri() . '/css/animate.css',array(),'1.1','all');

尽管如此,我认为这不会影响结果。

更新 2 - 根据 cmets

  1. 开头&lt;? php 应该是&lt;?php
  2. 此行没有;wp_enqueue_style( 'style', get_template_directory_uri() . '/css/style.css',false,'1.1','all')

更新 3

  1. wp_enqueue_style( 'animate', get_template_directory_uri() . 'animate.css',false,'1.1','all');animate.css 之前需要一个 /。 应该是:wp_enqueue_style( 'animate', get_template_directory_uri() . '/animate.css',false,'1.1','all');;
  2. wp_enqueue_style( 'flexslider', get_template_directory_uri() . 'flexslider.css',false,'1.1','all');相同
  3. wp_enqueue_script( 'bootstrap.min', get_template_directory_uri() . 'js/bootstrap.min.js', array ( 'jquery' ), 1.1, true);js/ 之前需要一个 /。应该是wp_enqueue_script( 'bootstrap.min', get_template_directory_uri() . '/js/bootstrap.min.js', array ( 'jquery' ), 1.1, true);
  4. 对于您不认识的那些,它们可能包含在 CSS 或 JS 文件中,并且路径不正确。对 1、2 和 3 进行更改并再次检查。

【讨论】:

  • 是的,它是functions.php,但问题仍然存在。当我检查文件的路径时,它们没有 wp-content/themes/theme-name/css 部分。他们只有 b2w(我的 localhost 中 wordpress 文件夹的名称)/css/css-filename,所以他们看不到路径,但我知道代码是正确的吗?
  • 更新了答案。我之前没有注意实际的排队。
  • 请发布您获得的结果作为对您的问题的编辑以及(也许)您的主题的文件夹结构。
  • 也许可以尝试使用get_stylesheet_directory_uri() 而不是get_template_directory_uri()。让我知道结果是什么。
  • 我标记了复选标志。谢谢您的帮助。如果我无法管理它,我将打开一个新线程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-12
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多