使用Wordpress页面作为样式表?

时间:2017-02-21 17:53:41

标签: css wordpress wordpress-theming

我希望能够通过在后端使用Page而不是默认的style.css文件来编辑我的WordPress主题CSS。我之前已经看过它作为一个页面模板,但我似乎无法自己解决这个问题。

我在Multisite上使用WordPress版本4.7.2。我希望CSS在主题激活时生成,因此使用Page。

如果这是一个简单的解决方案并且可以通过其他方式实现此目的,我会提前道歉。谢谢!

1 个答案:

答案 0 :(得分:0)

我强烈建议您使用插件,例如https://wordpress.org/plugins/wp-add-custom-css/或使用WordPress定制器"其他CSS"领域。

然而,要回答你的问题,这很容易,因为我修改了一些方法,我用ajax加载了一些页面。您需要创建一个页面模板,并且需要FTP和代码编辑器来创建页面,然后将其推送到您的主题文件夹(希望在升级时儿童主题或此模板将消失)。

我将我的CSS页面模板命名为: css-page.php

它只需要打开php标签。

模板的代码css-page.php

<?php

/**
*
* Template Name: CSS page
* Not a recommended idea.
*
*/

header("Content-type: text/css; charset: UTF-8");

ob_start("compress");

//minify CSS
function compress( $minify ) {

    /* remove comments */
    $minify = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $minify );

    /* remove tabs, spaces, newlines, etc. */
    $minify = str_replace( array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $minify );

        return $minify;
}

//get the content
if (have_posts()) : 

while ( have_posts() ) : the_post();

    $content = get_the_content();

    $content = wp_filter_nohtml_kses( $content );

    echo $content;

endwhile;

endif; 

ob_end_flush();

然后在您的子主题(或该文件或自定义插件的包含)的functions.php文件中粘贴以下内容,但在注明的地方更改:

更改值p =&#39; 3134&#39;到您使用此模板的网页ID。改变id =&#34;某事&#34;别的东西或删除它。有用于拥有js操作的id或类。

适用于functions.php

//Get CSS page contents
function myprefix_page_css() {
    echo '<link rel="stylesheet" id="something" href="'. site_url() .'/?p=3134" type="text/css" media="screen">';
}
add_action( 'wp_head', 'myprefix_page_css', 99 );