在使用短代码时将css添加到wordpress

时间:2014-09-03 01:33:06

标签: php html css wordpress

我似乎无法使用此功能,并且想知道是否有人可以帮我看看。

我有一些使用特殊表单的静态页面,但我不希望/需要在网站的每个页面上加载css。


function skyform_check_function() {
    global $post
    if (has_shortcode( $post->post_content, 'skyform_function')) {
        wp_enqueue_script( 'add_skyform_css_function');
    }
}
add_action ('wp_enqueue_scripts', 'skyform_check_function');

[skyform_function]是表单的短代码 函数add_skyform_css_function()添加了css。 < - 如果我只是执行add_action,这项工作正常(' wp_head',' add_skyform_css_function');

function add_skyform_css_function () {
?>
    <link rel="stylesheet" href="/assets/sky-forms/css/sky-forms.css">
    <!--[if lt IE 9]><link rel="stylesheet" href="assets/sky-forms/css/sky-forms-ie8.css"><![endif]-->

    <script src="/assets/sky-forms/js/jquery.min.js"></script>
    <script src="/assets/sky-forms/js/jquery-ui.min.js"></script>
    <script src="/assets/sky-forms/js/jquery.form.min.js"></script>
    <script src="/assets/sky-forms/js/jquery.validate.min.js"></script>
    <script src="/assets/sky-forms/js/jquery.maskedinput.min.js"></script>
    <script src="/assets/sky-forms/js/jquery.modal.js"></script>

    <!--[if lt IE 10]><script src="/assets/sky-forms/js/jquery.placeholder.min.js"></script><![endif]-->        

    <!--[if lt IE 9]>
        <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
        <script src="/assets/sky-forms/js/sky-forms-ie8.js"></script>
    <![endif]-->
<?php
}

1 个答案:

答案 0 :(得分:1)

首先使用add_shortcode注册您的短代码,否则您将无法使用has_shortcode

  

需要使用add_shortcode()注册短代码才能识别。

function skyform_check_function() {
    global $post;

    if( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'skyform_function') ) {
        add_action ('wp_head', 'add_skyform_css_function');
    }
}

add_action('wp_enqueue_scripts', 'skyform_check_function');

add_shortcode('skyform_function', 'skyform');

function skyform() {
    // your shortcode
}

并将您的代码添加到wp_head,因为wp_enqueue_script是脚本脚本,而不是回显块。