Load files content

时间:2016-05-19 作者:user90798

我想通过php在我的Wordpress插件中加载一个css文件。首先,我尝试了file\\u get\\u内容:

$stylesheet = file_get_contents(plugins_url(\'assets/css/fonts.css\', __FILE__ ));
但是我得到了这个错误:

无法打开流:HTTP请求失败!HTTP/1.1 401未经授权

我注意到必须在php中启用Allow\\u url\\u fopen。ini(但我也了解到这是一种安全风险)。

是否有WordPress函数来加载txt文件并将其内容存储在变量中?

EDIT:我想解析一个CSS文件并获得它的所有字体系列。

<?php
function my_fonts() {
    $stylesheet = file_get_contents(\'../assets/css/fonts.css\');
    $rows       = explode("\\n", $stylesheet);
    array_shift($rows);

    $fonts = array();

    foreach($rows as $row => $data)
    {
        // Find all available font-families
        $regex = \'#font\\-family:(.*)#\';
        preg_match($regex, $data, $output);
        if($output){
            $font = str_replace(array(\'font-family:\', \'\\\'\', \';\'), \'\', $output[0]);
            $fonts[] = $font;
        }
    }

    // Remove dublicates
    $fonts = array_unique($fonts);

    print_r($fonts);
}
?>

2 个回复
最合适的回答,由SO网友:user90798 整理而成

看起来我把自己挡在外面了……我有一个。运行密码保护的htaccess阻止脚本访问文件。

SO网友:tehlivi

您应该使用WordPress的内置功能wp_enqueue_style 用于加载样式。

/**
 * Proper way to enqueue scripts and styles
 */
function wpdocs_theme_name_scripts() {
    wp_enqueue_style( \'style-name\', get_stylesheet_uri() );
    wp_enqueue_script( \'script-name\', get_template_directory_uri() . \'/js/example.js\', array(), \'1.0.0\', true );
}
add_action( \'wp_enqueue_scripts\', \'wpdocs_theme_name_scripts\' );

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

相关推荐

为什么我的主题的css在另一个网站上不起作用

我在Neve theme的基础上开发我的on theme。首先,我对脚本有问题,因为它不起作用,但我不得不从页脚更改它们的位置。php到标题。php的一切都很好。新的一些脚本无法工作,因为css根本没有加载。我尝试了5种不同的方法,但都失败了。标题中的。php我只是给他们<style> </style></我在函数中使用了寄存器样式。php,标题。php和页脚。php function my_theme_enqueue_styles() { &#x