如何从JSON WP REST API响应中获取CSS

时间:2018-06-21 作者:Алексей Самойлич

我通过调用/wp-json/v2/page/获取页面内容,并且没有一个字段具有CSS样式。如何将css样式添加到json响应中?可能存在一些插件,可以添加自定义字段?。。像这样的https://wordpress.org/plugins/wp-api-yoast-meta/ 会很好的

3 个回复
SO网友:Mark Kaplun

什么的CSS?

CSS只能在整个页面的上下文中相关,并且只要不请求整个页面的数据(只需获取页面并根据相关样式规则对其进行解析即可轻松完成),就缺乏上下文。根本没有帖子的CSS这样的东西。帖子可以出现在许多上下文中,并且每个上下文中都有不同的样式。

因此,这与其说是一个技术方法的问题,不如说是一个事实,即在一个API的上下文中,需求本身没有多大意义,该API应该在没有任何上下文提示的情况下在单个帖子上提供数据。

SO网友:Johansson

Mark关于API输出中没有CSS的回答是正确的。但是,如果出于任何原因需要获取CSS文件的URL,可以添加自定义rest路由并输出其URI。

下面是一个简单的代码functions.php 文件:

// Register a new rest route
add_action( \'rest_api_init\', \'my_rest_routes\' );

function my_rest_routes() {

    register_rest_route(
        \'alexi/v1\',
        \'/output_css_uri/\',
        [
            \'methods\'  => \'GET\',
            \'callback\' => \'output_css_callback\',
        ]
    );
}


// Callback function to output the css URI
function output_css_callback() {
    return get_stylesheet_uri();
}
现在,您可以通过访问以下地址动态获取样式表的URI:

http://example.com/wp-json/alexi/v1/output_css_uri
然而,输出主样式表的URI没有多大意义,因为您可能已经知道它的位置,但它可以用于输出任何URI,包括自定义JS和CSS文件。

SO网友:Mallika Reddy

一种解决方案是获取样式表链接并将其添加到您正在使用的应用程序的head中。或者获取完整的文档。

在下面的链接中详细解释。

https://stackoverflow.com/questions/63560023/styling-issues-while-rendering-wordpress-template-in-react/63740604#63740604

结束