首页 > 解决方案 > WordPress自定义函数未将全局变量传递给其他函数

问题描述

我正在尝试在全局变量中传递自定义 CSS 以在另一个函数中使用它,然后将其传递给wp_enqueue_scriptsvia,wp_add_inline_style但是当我将它用作全局变量时,它不会返回任何内容,只有当我add_action('wp_footer', 'my_function')在下面使用时我会告诉你我的代码和功能

我已经尝试了很多方法,但仍然是同样的问题!

cru_generate_custom_style在许多文件中使用为自定义元素生成自定义 css,并且基于WordPress,您无法wp_add_inline_style在其他任何地方运行,除非wp_enqueue_scripts这是为了消除W3C上的错误并将内联样式添加到wp_head

global $cru_bottom_styles;
$cru_bottom_styles = array();

function cru_generate_custom_style( $selector = '', $props = '', $media = '', $footer = true ) {
  global $cru_bottom_styles;

  $css = '';

    // Selector Start
    $css .= $selector . ' {' . PHP_EOL;

      // Selector Properties
    $css .= str_replace( ';', ';' . PHP_EOL, $props );

    $css .= PHP_EOL . '}';
    // Selector End

    // Media Wrap
    if ( trim( $media ) ) {
      $css = "@media {$media} { {$css} }";
    }


  if ( ! $footer || defined( 'DOING_AJAX' ) ) {
    echo "<style>{$css}</style>";
    return;
  }

  $cru_bottom_styles[] = $css;
}

function cru_parse_header_styles() {
    global $cru_bottom_styles;
    print_r($cru_bottom_styles);

    wp_add_inline_style( 'main', implode( PHP_EOL . PHP_EOL, $cru_bottom_styles ) );
}
add_action( 'wp_enqueue_scripts', 'cru_parse_header_styles' );

标签: phpwordpressfunctionglobal-variablesglobal

解决方案


推荐阅读