【问题标题】:wordpress plugin unexpected characterswordpress 插件意外字符
【发布时间】:2020-11-02 15:22:47
【问题描述】:

我已经加入了一个包含 CSS 的 php 文件。一切正常,除了当我激活插件时 wordpress 出现问题。

插件在激活期间生成了 1230 个字符的意外输出。如果您发现“标头已发送”消息、联合提要问题或其他问题,请尝试停用或删除此插件。

这是我在我的 php 文件中的 CSS 上方的内容。 <?php // We'll be outputting CSS header('Content-type: text/css'); ?>

似乎 Wordpress 不希望 PHP 文件中包含 CSS。但它确实有效。我在其他地方读过只是添加标题内容类型文本/css,一切都应该没问题。但是 Wordpress 不喜欢这样。有人可以帮忙吗?

【问题讨论】:

  • 你看过1230个字符是什么吗?它们是您的 php 代码中的 CSS 吗?正如 Wordpress 的回复所说,你不能这样做——在一切设置好之前发送输出。你能告诉我们你是如何进行排队的吗?
  • 绝对是CSS。当我添加或删除任何 CSS 时,错误显示消息中的字符数会发生变化。我实际上并没有将该文件排入队列,而是将其包含在内。这是执行此操作的代码。包括(plugin_dir_path(文件)。'dynamicstyles/style.php');
  • wordpress.stackexchange.com/questions/129259/… 看起来我需要将它放在回调中并通过 wp_head 将回调挂钩到头部。我不完全确定我知道为什么这解决了问题,但错误不再显示。嗯。
  • 我添加了这个<?php function wpse_129259_enqueue_dynamic_css() { // Grab your variable global $data; ?> <style type="text/css">,然后在CSS </style> <?php } add_action( 'wp_head', 'wpse_129259_enqueue_dynamic_css' );之后添加了这个
  • 如果您了解这解决了问题的原因,您能否添加一个答案,以便我将其标记为已解决。如果有解释,也许它可以帮助其他人。

标签: php css wordpress


【解决方案1】:

问题是我们想在前端编写一些样式代码,但 Wordpress 抱怨标题已经发送。

这意味着在 Wordpress 开始设置标题之前,某些东西已经回显了字符。结果发现问题在于发送一些 CSS 太早了。

我们希望这个 CSS 出现在 <head> 中,而 Wordpress 为我们提供了一种实现方式,它有一个动作挂钩,wp_head

插件需要做的是要求 WP 在适当的时候将样式元素及其伴随的样式添加到头部元素中。这是通过添加这样的操作来实现的:

function pluginprefix_hook_css() {
    ?>
        <style>
          all the style we want to add here
        </style>
    <?php
}
add_action('wp_head', 'pluginprefix_hook_css');

注意:我已经在函数名称中添加了'pluginprefix',实际上你可以随意调用函数,但最好为你自己的插件有一个唯一的前缀,这样它就不会与任何冲突Wordpress 本身或其他插件使用的其他名称。

【讨论】:

  • 谢谢。我赞成你的回答,虽然因为我的代表低于 15 岁,所以它没有显示。感谢您对使用唯一函数名称的解释和建议。
  • 谢谢,但我认为您也应该分享发现 WPSE 内容的要点!很高兴它成功了。
猜你喜欢
  • 2016-05-09
  • 2016-10-03
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 2016-07-29
  • 2017-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多