【问题标题】:What's wrong with this Genesis PHP WordPress plugin code?这个 Genesis PHP WordPress 插件代码有什么问题?
【发布时间】:2017-06-01 23:06:44
【问题描述】:
<?php
/*
* Plugin Name: Add Fontawesome Animation
* Plugin URI: ...
* Description: This plugin is used to animate Fontawesome icons
* Version: 1.0.0
* Author: ...
* Author URI: ...
* License: GPLv2
* * */

// Enqueue font-awesome-animation.css
add_action( 'wp_enqueue_style', 'add_fontawesome_animation' );
function add_fontawesome_animation() {
    wp_enqueue_style('font_awesome_animation', get_stylesheet_directory_uri() . '/css/font-awesome-animation.css' );
}

目标:加载 font-awesome-animation.css 以便 FontAwesome 图标可以动画。

使用:PhpStorm 并且刚刚开始使用 Genesis。我正在使用 genesis-sample 子主题,并且在大多数情况下,发布帖子和学习使用代码修改模板都进展顺利。

当我将 @import url("css/font-awesome-animation.css") 导入 style.css 文件时,FontAwesome 图标将动画化,否则我无法将 font-awesome-animation.css 从函数中排入队列。 php 或如上图所示的插件。当 PHP 中出现错误时,我在编辑器或页面中没有发现任何可观察到的错误,也没有得到典型的全白页面。有些东西是 FUBAR,我还不知道如何在 WordPress 中进行这种类型的调试,所以我需要知道代码可能有什么问题以及如何调试这种类型的 SNAFU 的建议。是否有某种类型的 Response.Write 可以用来显示路径等?

【问题讨论】:

  • 看起来您正在将wp_enqueue_style 调用添加到wp_enqueue_style 调用中。

标签: php wordpress genesis


【解决方案1】:

尝试将您正在使用的挂钩更改为wp_enqueue_scripts。来自codex

wp_enqueue_scripts 是在排队项目时使用的正确钩子 旨在出现在前端。尽管有这个名字,但它用于 将两个脚本和样式排入队列。

如果您正在制作插件,get_stylesheet_directory_uri() 也不适合您。这仅用于主题/子主题。如果你从你的主插件文件中调用它,你可以使用plugin_dir_url( __FILE__ )。同样,来自the codex

获取传入的插件 FILE 的 URL(带有斜杠)

在这种情况下,我们通过 PHP magic constant __FILE__ 来获取主插件文件的 uri 带有斜杠

所以您的代码如下所示:

<?php
// Enqueue font-awesome-animation.css
add_action( 'wp_enqueue_scripts', 'add_fontawesome_animation' );

function add_fontawesome_animation() {
wp_enqueue_style('font_awesome_animation', plugin_dir_url( __FILE__ ) . 'css/font-awesome-animation.css' );
}

【讨论】:

  • 一切都很好。为清楚起见,@DaveLak 回答了以下内容构建包含 /css/font-awesome-animation.css 的 Genesis 子主题,因此仍然需要 get_stylesheet_directory_uri()。
猜你喜欢
  • 2013-06-05
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 2014-08-12
相关资源
最近更新 更多